这个 SO 答案setTimeout
使用四个参数进行调用。
setTimeout(self.process1, 0, self, u);
这让我很困惑。我看到的文档setTimeout
只使用了两个参数,而不是四个。
最后两个参数有什么作用?
引用MDN 上的文档:
句法
var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);
请注意,在第一种语法中将附加参数传递给函数在 Internet Explorer 中不起作用。
这个函数有两个签名
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 向回调例程传递了一个额外的参数,以毫秒为单位指示超时的“实际延迟”。不再传递此非标准参数。
并非所有浏览器都支持第一个签名(具有两个以上的参数),因此我个人的建议是避免使用它。