一、最近在看promise,驚奇的發現:原來 setTimeout不只有兩個參數,我還能說什么呢?趕緊探探究竟。
function multiply(input) {
return new Promise(function (resolve, reject) {
log('calculating ' + input + ' x ' + input + '...');
setTimeout(resolve, 500, input * input);
});
}
二、定義
扒了一下MDN,果然有定義:

’Additional parameters which are passed through to the function specified by func once the timer expires.’
定時器啟動時候,第三個以后的參數是作為第一個func()的參數傳進去。
三、demo1
增加兩個參數
function sum(x, y) {
console.log(x+y) //3
}
setTimeout(sum, 1000, 1, 3);
增加三個參數

(打印出的11是setTimeout的timeId)
可以看出:
[第三個參數及以后的參數都可以作為sum函數的參數;]
四、再看demo2
var doc=document.getElementById('div');
setTimeout(function(){
doc.style.color='red';
},10000,setTimeout(function(){
doc.style.color='black';
},5000));
上面的結果是,div元素內的字體樣式5秒后變黑,10秒后再變紅。是不是很驚奇,因為第三個參數也是一個定時器,5后就會開啟。和JQuery里面的animate()不同,animate里面回調是執行了前面之后再執行后面的。
