JQuery はthis
、イベント ハンドラーとして追加すると、インスタンス メソッドのキーワードを上書きするようです。なぜこれが起こるのですか?以下のコード:
function Foo() {};
Foo.prototype.bark = function() {
console.log(this);
};
var foo = new Foo();
$("#b").click(foo.bark);
クリック時の出力:
<button id="b" type="button">
this
ただし、JQuery は以下のコードのキーワードをオーバーライドしていないようです。
$("#b").click(function() { foo.bark(); });
クリック時の出力:
`Foo { bark=function()}`