setTimeout,setInterval的this指向

2019-08-27  本文已影响0人  一包

最近写代码遇到了setTimeout的this指向问题,这个小细节居然忘记了!!
setTimeout,setInterval传进的函数this会指向window,至于为啥,下次有空写写,这里先占个坑哈哈·~
解决问题:

  1. 使用bind(不能使用call,apply会立即执行这个函数)
setTimeout(fn.bind(this), 1000);
  1. 使用箭头函数,箭头函数会绑定父级的作用域,因此setTimeout的this指向定义时的作用域而不是运行时的作用域
setTimeout(()=>{
},1000)
上一篇 下一篇

猜你喜欢

热点阅读