'this'在Javascript箭头函数中未定义

时间:2016-10-20 15:49:30

标签: javascript javascript-events ecmascript-6 this arrow-functions

在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
  });

有人可以解释一下这种行为吗?

1 个答案:

答案 0 :(得分:0)

调用箭头函数时,不会导致this绑定。它在封闭的词法范围内具有任何价值。在您的情况下,这意味着封闭范围中的thisundefined