在构造函数中使用 setInterval 时,为什么 this 会指向 window 对象?
在构造函数中使用 setinterval 的常见问题
当我们在构造函数中使用 setinterval 时,可能会遇到 this 指向问题,导致 setinterval 仅执行一次。
这主要是由于 javascript 中 this 的绑定机制。在构造函数中,this 被绑定到新创建的对象。当我们使用 setinterval 时,计时器回调函数是在全局上下文中执行的,此时 this 指向 window 对象,而不是创建的对象。
解决方案:
为了解决这个问题,可以使用以下两种方法:
-
使用 bind 方法:
this.circle = this.circle.bind(this);
bind 方法将一个函数绑定到指定的对象,因此在计时器回调函数中,this 将指向绑定的对象。
-
使用箭头函数:
setInterval(() => { this.circle(); });
以上就是在构造函数中使用 setInterval 时,为什么 this 会指向 window 对象?的详细内容,更多请关注其它相关文章!