箭头函数与定时器的this指向问题

函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。

箭头函数本身没有this,this继承上级的this。

定时器中箭头函数的this指向包含定时器的函数,所以定时器中的箭头函数要使用外层this的时候,不用借that传递了,正常使用即可

1  // 为避免频繁点击触发事件,点击之后禁用点击事件,1.5秒后解除
2  $('#refresh').click(function () {
3    $(this).css('pointer-events', 'none')
4    //定时器的this指向window,箭头函数没有this,使用外层函数的this,所以在定时器中用this指向了外层的this
5    setTimeout(() => {
6      $(this).css('pointer-events', '')
7    }, 1500)
8  })

 http://es6.ruanyifeng.com/#docs/function#%E7%AE%AD%E5%A4%B4%E5%87%BD%E6%95%B0

 
原文地址:https://www.cnblogs.com/web-xu/p/11889092.html