setTimeout的第三个参数,你可能不知道的作用

说起来你可能不相信,setTimeout居然有第三个参数,扒了一下MDN,果然有定义:

setTimeout(code, milliseconds, param1, param2, ...);
setTimeout(function, milliseconds, param1, param2, ...);

param1, param2, ... 可选。 传给执行函数的其他参数(IE9 及其更早版本不支持该参数)。

增加两个参数

function sum(x, y) {
    console.log(x+y);
}

setTimeout(sum, 1000, 1, 3);

 

打印出的11是setTimeout的timeId。

从上面的例子,我们可以看出:第三个参数及以后的参数都可以作为sum函数的参数。

第三个参数作为函数

var i=0;
setTimeout(function(){
    console.log('第二次'+i)
},3000,setTimeout(function(){
    console.log('第一次'+i);
    i++;
},1000));

最后依次输出为 第一次0 第二次1。可以看到第三个参数还可以是先执行,然后再执行函数。

posted @ 2019-10-23 14:04  李小菜丶  阅读(66)  评论(0)    收藏  举报