在我的 Javascript 代码中,我尝试设置此代码
if(this.boolean == true) {
setTimeout(function(){ this.boolean = false; }, 2000);
}
但由于某种原因它不起作用, bool 值仍然为真。我该如何解决这个问题/我可以做什么? setTimeout 可以与其他代码行一起使用,但奇怪的是,这一行却不起作用。
最佳答案
this
在 JavaScript 中以一种特殊的方式表现。
改变
setTimeout(function(){ this.boolean = false; }, 2000);
到
setTimeout(() => { this.boolean = false; }, 2000);
并且 this
关键字将被解释为 block 范围。
关于javascript - 无法使用 setTimeout 撤消 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60230412/