我的代码:
var cardFrame = {
element: "VALUE",
flip: function(){
console.log("flip: "+this.element);
},
};
当按钮与该行绑定时,单击它会按应有的方式打印
flip: VALUE
。$("#flashcard").bind( "click", function(){cardFrame.flip();} );
如果与下面的行绑定。该按钮打印
flip: undefined
$("#flashcard").bind( "click", cardFrame.flip );
这两个语句在功能上应该相等。为什么是这样?
最佳答案
这并不相等,两种情况下的“ this”是不同的。
首先,“ flip”被称为“ cardFrame”的方法,因此函数“ this”中的对象是“ cardFrame”。
在第二个中,jQuery传递的“ this”是您将click事件附加到的元素。
您可以阅读reference about this
关于javascript - 使用jQuery直接绑定(bind)功能与包装器。为什么不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25421715/