Javascript “的行为;这";在forEach和addEventListener方法中
编辑:这不是关于“This”关键字在不同上下文中的一般行为的问题。我的问题是,这两种行为背后是否有一个共同的底层逻辑——是因为“this”仅在调用对象的方法时绑定到该对象,而forEach()是数组的方法吗?Javascript “的行为;这";在forEach和addEventListener方法中,javascript,object,foreach,this,addeventlistener,Javascript,Object,Foreach,This,Addeventlistener,编辑:这不是关于“This”关键字在不同上下文中的一般行为的问题。我的问题是,这两种行为背后是否有一个共同的底层逻辑——是因为“this”仅在调用对象的方法时绑定到该对象,而forEach()是数组的方法吗? 为什么当我使用: var tag = ["a","b","c"]; tag.forEach(function () { console.log(this) }); element.getElementById("id").addEventListener("click", fun
为什么当我使用:
var tag = ["a","b","c"];
tag.forEach(function () {
console.log(this)
});
element.getElementById("id").addEventListener("click", function () {
console.log(this.value);
});
此
引用全局对象,因为函数绑定到全局对象,但当我使用时:
var tag = ["a","b","c"];
tag.forEach(function () {
console.log(this)
});
element.getElementById("id").addEventListener("click", function () {
console.log(this.value);
});
此
指的是id
元素,即使它在函数中?这是因为forEach
是数组的方法,而不是对象的方法吗?在DOM事件处理程序中,此
被设置为触发事件的元素:
进一步阅读: