This SO answer使用四个参数调用setTimeout
。
setTimeout(self.process1, 0, self, u);
这让我很困惑。我在setTimeout
看到的documentation只使用了两个参数,而不是四个。
最后两个论点有什么作用?
答案 0 :(得分:3)
<强>语法强>
var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);
请注意,将附加参数传递给第一个函数 语法在Internet Explorer中不起作用。
答案 1 :(得分:2)
此功能有两个签名
var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);
var timeoutID = window.setTimeout(code, delay);
请注意,在第一种语法中将其他参数传递给函数在Internet Explorer中不起作用。
MDN中有关这些额外参数的注释:
在Gecko 13(Firefox 13.0 / Thunderbird 13.0)之前,Gecko通过了 回调例程的额外参数,表示“实际的 迟到的超时时间,以毫秒为单位。这个非标准参数 不再通过了。
所有浏览器都不支持第一个签名(包含两个以上的参数),因此我个人建议避免使用它。