例 オブジェクト内の関数でsetTimeoutを使ってその中で、オブジェクト自身をthisとして使いたいような場合 var obj = { name: 'obj', func: function() { console.log(this); // => Object setTimeout(function() { console.log(this, this.name); // => Window, "result" }, 100); } }; obj.func(); そのまま書くと、setTimeoutで呼び出された関数のthisはWindowになる Functionが参照型だから、thisがwindowになってる? undifinedではなくwindowになる理由の理解がまだ不明瞭。 伝統的な方法 var obj = { name: 'obj', func: function() {