';这';在Javascript箭头函数中未定义
在Javascript事件的回调函数中,';这';在Javascript箭头函数中未定义,javascript,ecmascript-6,this,dom-events,arrow-functions,Javascript,Ecmascript 6,This,Dom Events,Arrow Functions,在Javascript事件的回调函数中,单击此元素: document.querySelector('#my-element').addEventListener('click', function() { console.log(this); // <div id="my-element"> }); 有人能给我解释一下这种行为吗?箭头函数在调用时,不会导致这个被绑定。它将具有它在封闭的词法作用域中的任何值。在您的例子中,这意味着这个在封闭范围内是未定义的箭头函数
单击此
元素:
document.querySelector('#my-element').addEventListener('click', function() {
console.log(this); // <div id="my-element">
});
有人能给我解释一下这种行为吗?箭头函数在调用时,不会导致
这个
被绑定。它将具有它在封闭的词法作用域中的任何值。在您的例子中,这意味着这个
在封闭范围内是未定义的
箭头函数具有词法这个
绑定。在这方面还有很多其他的,还有一个复制品
document.querySelector('#my-element').addEventListener('click', () => {
console.log(this); // undefined
});