Javascript IE8中的设置超时问题

Javascript IE8中的设置超时问题,javascript,internet-explorer-8,settimeout,Javascript,Internet Explorer 8,Settimeout,在IE8中使用javascript setTimeout函数时,我遇到了一个奇怪的问题。 我想像这样使用'setTimeout'函数- setTimeout(timeout,2000, {name:'saarthak'}); function timeout(opts) { alert('hello ' + opts.name); } setTimeout的第三个参数是我想要传递给调用函数的参数。这是完美的工作在FF,铬,但不是在IE8

在IE8中使用javascript setTimeout函数时,我遇到了一个奇怪的问题。 我想像这样使用'setTimeout'函数-

setTimeout(timeout,2000, {name:'saarthak'});

    function timeout(opts)
    {       
        alert('hello ' + opts.name);
    }
setTimeout的第三个参数是我想要传递给调用函数的参数。这是完美的工作在FF,铬,但不是在IE8

有人知道该怎么办吗?或者有什么办法来实现这一点


谢谢

这里可能不支持,因此请使用以下内容:

window.setTimeout(function() {
    timeout({name:'saarthak'});
},2000);
意思是从匿名函数中调用函数

如果您想通过更改变量调用timeout(例如,使用许多名称在循环中调用timeout),您也可以在IE8中使用:

var names = ["saarthak", "saarthak2", "saarthak3"]; 
for (var q in names) {
  setTimeout(
    (function(opts){
          return function(){
                    alert ("hello " + opts.name)            
                  }
     })({name:names[q]}), 2000);
}

请参阅:

您可能已经找到了它:请注意,在Internet Explorer中,以第一种语法向函数传递附加参数不起作用@是的,我就是这么做的。无论如何,谢谢你(魔法师)