Javascript setTimeout中的额外参数:最早的IE版本支持?

Javascript setTimeout中的额外参数:最早的IE版本支持?,javascript,internet-explorer,version,settimeout,setinterval,Javascript,Internet Explorer,Version,Settimeout,Setinterval,为了避免隐含的评估和不必要的代码,我想使用: setTimeout(警报,1000,“你好”) 而不是: setTimeout('alert(“Hello”)’,1000) 或: 现在我已经从IE8和更高版本读到IE支持这个功能,但是如果我从emulator(在IE11中)运行它,似乎连IE9都不支持它 有人能告诉我IE8和IE9的实际版本是否如此吗?在IE9和IE8中对我都失败:在IE10和IE11中对我有效 有趣的是,在IE开发中心的setTimeout页面中 现在,如果alert只是一个示

为了避免隐含的评估和不必要的代码,我想使用:
setTimeout(警报,1000,“你好”)

而不是:
setTimeout('alert(“Hello”)’,1000)
或:

现在我已经从IE8和更高版本读到IE支持这个功能,但是如果我从emulator(在IE11中)运行它,似乎连IE9都不支持它


有人能告诉我IE8和IE9的实际版本是否如此吗?

在IE9和IE8中对我都失败:在IE10和IE11中对我有效

有趣的是,在IE开发中心的
setTimeout
页面中

现在,如果
alert
只是一个示例,但您不打算使用主机提供的函数(这些函数并不总是由
Function.prototype
支持)执行此操作,您可以执行以下操作:

// Won't work with `alert` on IE9 but does with real JavaScript functions.
// Even `alert` works IE10+ (they finally got it about Function.prototype)
setTimeout(yourFunction.bind(null, "Hello"), 1000);

这仍然创建了一个函数,但(理论上)以稍微优化的方式。(你必须为IE8和更早版本,可能还有其他几款较老的浏览器添加垫片。)

但是在10中成功了,就像模拟器一样?@Jonathan:刚刚启动完那个虚拟机。在IE10中工作。(和IE11)谢谢。由于IE9不支持它,我想我不会使用它。是的,我认为MSDN将第三个参数指定为
语言
@Jonathan:Yeah.:-)也很奇怪坚持使用传入函数的版本。或者使用
bind
(刚刚添加)。
// Won't work with `alert` on IE9 but does with real JavaScript functions.
// Even `alert` works IE10+ (they finally got it about Function.prototype)
setTimeout(yourFunction.bind(null, "Hello"), 1000);