& # 39;这个# 39;在Javascript箭头函数中未定义

'this' is undefined in Javascript arrow function

本文关键字:函数 未定义 这个 Javascript      更新时间:2023-09-26

在Javascript事件回调函数中,点击this元素:

  document.querySelector('#my-element').addEventListener('click', function() {
    console.log(this);  // <div id="my-element">
  });

但是,当我使用ES6箭头功能时,this变成了undefined:

  document.querySelector('#my-element').addEventListener('click', () => {
    console.log(this);  // undefined
  });
谁能给我解释一下这种行为?

当调用箭头函数时,不会导致this被绑定。它将具有它在外围词法作用域中的任何值。在您的例子中,这意味着封闭作用域中的thisundefined