关于定时器中this的指向问题

解决方法一

 将当前对象的this存为一个变量,通俗讲就是在方法内重新定义一个参数,将this指向这个参数。

实例:

 

 

解决方法二 

bind()方法是在Function.prototype上的一个方法,当被绑定函数执行时,bind方法会创建一个新函数,并将第一个参数作为新函数运行时的this。在这个例子中,在调用setTimeout中的函数时,bind方法创建了一个新的函数,并将this传进新的函数,执行的结果也就是正确的了

 

 

 

 

解决方法三 

箭头函数完全修复了this的指向,this总是指向词法作用域,也就是外层调用者obj,

 

 

 

节选自 Little Zhang   https://www.cnblogs.com/zsqos/p/6188835.html

posted @ 2020-12-05 11:39  打工人001  阅读(262)  评论(0编辑  收藏  举报