编辑:这不是关于“ this”关键字在不同上下文中的一般行为的问题。我的问题是,这里的2种行为背后是否存在一个共同的基本逻辑-是因为“ this”仅在调用该对象的方法时才绑定到该对象,而forEach()是数组的方法? > 为什么当我使用:
var tag = ["a","b","c"];
tag.forEach(function () {
console.log(this)
});
this
指的是全局对象,因为该函数已绑定到全局对象,但是当我使用时:
element.getElementById("id").addEventListener("click", function () {
console.log(this.value);
});
this
引用id
元素,即使它在函数中?是因为forEach
是数组的方法而不是对象的方法?
答案 0 :(得分:1)
在DOM事件处理程序this
中,将其设置为触发事件的元素:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this#As_a_DOM_event_handler