最近写代码遇到了setTimeout的this指向问题,这个小细节居然忘记了!!
setTimeout,setInterval传进的函数this会指向window,至于为啥,下次有空写写,这里先占个坑哈哈·~
解决问题:
- 使用bind(不能使用call,apply会立即执行这个函数)
setTimeout(fn.bind(this), 1000);
- 使用箭头函数,箭头函数会绑定父级的作用域,因此setTimeout的this指向定义时的作用域而不是运行时的作用域
setTimeout(()=>{
},1000)
网友评论