我有以下简单的 JavaScript“类”:
function Person(params)
{
this.name = params.name;
}
Person.prototype.SayHi = function()
{
alert(this.name + " says hi");
}
当我就地运行它时,这按预期工作。运行以下代码会给我一个弹出窗口,上面写着“Alice say hi”:
var alice = new Person({name:"Alice"});
alice.SayHi();
但是当我尝试将它分配给按钮事件时,它不起作用:
$("#AliceOnClick").on("click", alice.SayHi);
$("#BobOnClick").on("click", bob.SayHi);
似乎调用了
SayHi
函数,但 name
字段为空。最小工作示例:
http://jsfiddle.net/AKHsc/1/
我究竟做错了什么?
最佳答案
只需在匿名函数中运行它即可调用它。由于您在对象上调用方法,因此需要括号。
$(function(){
$("#AliceOnClick").on("click", function() {
alice.SayHi();
});
$("#BobOnClick").on("click", function() {
bob.SayHi();
});
});
在这里工作 Fiddle。
关于javascript - 如何从 DOM 事件调用 JavaScript 类实例方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18000261/