setTimeout的新发现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了setTimeout的新发现相关的知识,希望对你有一定的参考价值。

最近遇到个setTimeout回调函数做闭包出现的问题,解决这种问题时发现笔者给setTimeout加了第三个参数,瞬间觉得自己好像错过了什么。。。。。。

 

setTimeout  API文档链接https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout

一直以来,以为setTimeout的用法应该是这样的:setTimeout(callback,delay);
    callback:回调函数。
    delay:执行代码前需等待的毫秒数。

今天我看到下面这段为解决闭包带来的子函数作用域访问的是父函数执行后的变量值 问题,如下代码,瞬间不明所以

for (var i = 0; i < 5; i++) {
 setTimeout(function(j) {
 console.log(new Date, j);
 }, 1000, i);
}

console.log(new Date, i);


于是,API文档可以了解到,猜测第三个参数就是函数执行时的参数的值。

setTimeout(function(value){
  console.log(value);
},1000,‘你会成功的,wtl!‘);

控制台输出,‘你会成功的,wtl!’;

总结:

setTimeout的完整形式应该是这样的:setTimeout(callback,delay,param1,param2,...);其中,callback,delay是必须的。其余参数依次是需要执行函数的参数。

以上是关于setTimeout的新发现的主要内容,如果未能解决你的问题,请参考以下文章

关于xcode调试的一点新发现

每天都有一点新发现:Questa的Verilog仿真

关于DM8168中移植算法速度慢效率低的新发现

科学家的新发现,为核反应堆,核材料涂层提供了新方法

一些数学的新发现

QML中实现setTimeout和setInterval