首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setTimeout全局变量

setTimeout全局变量
EN

Stack Overflow用户
提问于 2017-09-12 16:23:03
回答 2查看 2.3K关注 0票数 0
代码语言:javascript
复制
var delayTime = 2000;
for(var i = 0; i<this.textToWrite.length; i++){
  setTimeout(
    (
      function (s){
        return function () {
          this.writeText += s;
          console.log(this.writeText);
        }
      }(this.textToWrite[i])
    ), delayTime)
  delayTime += 2000;
}

this.writeText有一些问题。它是全局变量,但是当我注释+=的行时,我有一个未定义的值.(我将writeText: string = "“globaly)设置为this.writeText引用全局变量吗?如何在本例中访问全局变量?我需要在2s延迟的情况下从textToWrite对象到writeText。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-12 16:52:13

问题可能是你使用了虚词。

代码语言:javascript
复制
setTimeout(
((s) => {
    return () => {
      this.writeText += s;
      console.log(this.writeText);
    }
  }(this.textToWrite[i])
), delayTime)

另一种方法是如果它的全局变量为:

代码语言:javascript
复制
 setTimeout(
((s) => {
    return () => {
      writeText += s;
      console.log(this.writeText);
    }
  }(this.textToWrite[i])
), delayTime)
票数 0
EN

Stack Overflow用户

发布于 2017-09-12 16:56:46

只使用箭头函数

代码语言:javascript
复制
settimeout(x => {
   console.log(x);
}, 1000);

不是这样的,它不会接受外部参数。

代码语言:javascript
复制
settimeout(funtion(x) {
   console.log(x);
}, 1000);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46181360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档