我们知道我们必须在回调中保留this
的值,以便使用适当的上下文执行它们。例如:
someArr.forEach(function(el) { console.log(this); });
当我们使用this
时,use strict
将引用窗口或未定义。
但是当我们添加一个事件时,例如:
someBtn.addEventListener('click', function() {
console.log(this);
});
此处this
指的是单击的按钮。为什么这个回调我们没有绑定任何这个,而在前一种情况下我们必须明确绑定它。
我错了所以请澄清我的疑问。
答案 0 :(得分:1)
this
depends on how the function is called的价值。
当您将该功能传递给addEventListener
或forEach
时,您正在为其他人编写的代码进行设置来调用它。
该代码将以不同的方式调用该函数,具体取决于编写它的人的意图。