原来setTimeout不是我想的那样的。

步入前端一年了。

在我的脑海中,setTimeout,的用法应该是这样的:setTimeout(code,millisec);
code:要调用的函数后要执行的 JavaScript 代码串。
millisec:在执行代码前需等待的毫秒数。
一直以来,我都认定setTimeout的参数只能是两个。
直到,今天我看到这段setTimeout(resolve, ms, ‘done’);我瞬间懵逼了。这第三个参数是怎么回事。我以为是es6新添加的。然后上网查资料,发现es6根本没有添加这个,显然是之前就存在的一种用法。
于是,我开始思考,猜测第三个参数就是resolve的参数的值。
于是,我写了这么一段代码。

setTimeout(function(value){
  console.log(value);
},1000,'新年快乐');

控制台输出,‘新年快乐’;
事实证明,我的想法是正确的。
于是我又想,四个参数呢。

setTimeout(function(value1,value2){
  console.log(value1,value2);
},1000,'2017','新年快乐');

控制台成功输出,‘2017新年快乐’。

总结:

setTimeout的完整形式应该是这样的:setTimeout(code,millisec,a1,a2,…);其中,code,,illisec是必须的。其余参数依次是需要执行函数的参数。

    原文作者:打铁大师
    原文地址: https://www.jianshu.com/p/427f7ef21cc6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞