setTimeout有多少个参数?

时间:2012-06-29 17:35:53

标签: javascript

This SO answer使用四个参数调用setTimeout

 setTimeout(self.process1, 0, self, u);

这让我很困惑。我在setTimeout看到的documentation只使用了两个参数,而不是四个。

最后两个论点有什么作用?

2 个答案:

答案 0 :(得分:3)

引用documentation on MDN

  

<强>语法

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通过了   回调例程的额外参数,表示“实际的   迟到的超时时间,以毫秒为单位。这个非标准参数   不再通过了。

所有浏览器都不支持第一个签名(包含两个以上的参数),因此我个人建议避免使用它。