这有什么区别:
function blankWord(){
console.log('blank!');
setTimeout(blankWord, 5000);
}
blankWord();
它将每5秒调用一次该函数,这是:
function blankWord(t){
console.log('blank!');
setTimeout(blankWord, t);
}
blankWord(5000);
哪个快速疯狂地重复调用该函数?
最佳答案
由于缺少第二种形式的参数,因此您从第二次调用时传递undefined
,这实际上将导致4ms的超时(which is the browser minimum)。
使用函数包装器可以安全地传递所需的参数:
function blankWord(t){
console.log('blank!');
setTimeout(function(){blankWord(t)},t);
}
blankWord(5000);
将参数作为第三个参数传递会淘汰较旧的IE,这就是为什么在IE8失效之前不应该使用它的原因。