このページで実行済みのコード
// SomeClassクラスを定義する var SomeClass = function(message) { this.message = message; }; // getMessageメソッドを定義する SomeClass.prototype.getMessage = function() { alert('message: ' + this.message); };
開発コンソールで以下のコードを順番に実行して結果を確認してみてください
// インスタンス生成 var foo = new SomeClass('foo'); foo.getMessage(); //-> message: foo // thisの参照先はwindowオブジェクト setTimeout(foo.getMessage, 0); //-> message: undefined // thisの参照先をbindで明示的に指定する setTimeout(foo.getMessage.bind(foo), 0); //-> message: foo // thisの参照先には任意のオブジェクトを指定可能 setTimeout(foo.getMessage.bind({ message: 'bar' }), 0); //-> message: bar