我正在阅读一个很棒的article在this
在JavaScript中。作者说,下面的代码是坏:混淆 - 绑定“this”&关闭 - JavaScript
Cart = {
items: [1,4,2],
onClick: function() {
// Do something with this.items.
}
}
$("#mybutton").click(Cart.onClick);
他说,click
事件并不了解Cart
对象调用的onClick时,因此this.items
不会是[1,4,2]
阵列,我希望它是。
作者继续说,这段代码创建一个闭包并修复它,但我不明白以下代码如何修复该问题。
$("#mybutton").click(function() { Cart.onClick() });
1)在什么情况下(如果不是Cart
)做this
事情我们是在如果我们使用的第一个例子。
2)为什么第二个例子解决了这个问题?
@JonathanLonowski:为什么不做出答案? :) –
我推荐阅读以下资源:https://github.com/getify/You-Dont-Know-JS/blob/master/this%20&%20object%20prototypes/ch1.md,https:// developer .mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this。当你理解这个'',你会明白这些例子。 –