我们知道我们必须在回调中保留this
的值,以便在适当的上下文中执行它们。例如:这在不同类型的回调?
someArr.forEach(function(el) { console.log(this); });
这里this
将参照窗口或不确定时,我们使用use strict
。
但是,当我们例如添加事件:
someBtn.addEventListener('click', function() {
console.log(this);
});
这里this
指按钮被按下。在这种回调中,我们不需要绑定任何这个,而在前一种情况下,我们必须明确地绑定它。 我可能是错的,请澄清我的疑问。
在你的'click'回调函数中'this'与你在附加事件处理程序的上下文(即this'this && someBtn.addEventHandler')中的'this'不同。这是一个不同的'这个'。它正在改变。如果你绑定了它,事件处理程序中的'this'就不会引用这个按钮。 – deceze