次の単純な JavaScript「クラス」があります。
function Person(params)
{
this.name = params.name;
}
Person.prototype.SayHi = function()
{
alert(this.name + " says hi");
}
これは、その場で実行すると期待どおりに機能します。次のコードを実行すると、「アリスがこんにちは」というポップアップが表示されます。
var alice = new Person({name:"Alice"});
alice.SayHi();
しかし、ボタンイベントに割り当てようとすると、うまくいきません:
$("#AliceOnClick").on("click", alice.SayHi);
$("#BobOnClick").on("click", bob.SayHi);
SayHi
関数が呼び出されたように見えますが、name
フィールドは null です。
最小限の実例:
私は何を間違っていますか?