这在不同类型的回调中?

时间:2017-08-07 11:03:02

标签: javascript

我们知道我们必须在回调中保留this的值,以便使用适当的上下文执行它们。例如:

someArr.forEach(function(el) { console.log(this); });

当我们使用this时,use strict将引用窗口或未定义。

但是当我们添加一个事件时,例如:

someBtn.addEventListener('click', function() {
        console.log(this); 
}); 

此处this指的是单击的按钮。为什么这个回调我们没有绑定任何这个,而在前一种情况下我们必须明确绑定它。 我错了所以请澄清我的疑问。

1 个答案:

答案 0 :(得分:1)

this depends on how the function is called的价值。

当您将该功能传递给addEventListenerforEach时,您正在为其他人编写的代码进行设置来调用它。

该代码将以不同的方式调用该函数,具体取决于编写它的人的意图。