javascript - 无法使用 setTimeout 撤消 bool 值

标签 javascript

在我的 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/

相关文章:

javascript - 为什么每次点击按钮时都会添加 <tfoot> ?

javascript - 打开相对文本文件javascript

javascript - 如何访问使用 LINK 标签加载的第 3 方样式表的源代码?

javascript - 两个 Css 文件具有相同的类 - 从特定类中删除类,如何?

javascript - 在 javascript "object"中继承属性

javascript - Browserify 从全局范围的 require 加载依赖项,而不是期望它们被捆绑在一起

javascript - Facebook 邀请好友不适用于 native android 浏览器

php - 当数据传输到php文件时调用函数

javascript - 使用 Mongoose 删除索引的推荐方法是什么?

javascript - Next 未定义 next(err)