我尝试在 IE9 上进行 setTimeout,但它仍然抛出“无效参数”异常...
这是我的代码:
var timeout;
timeout = setTimeout((function(s_text){
alert(s_text);
})('Hello'), 1000);
有人知道吗?
最佳答案
您正在实现的方法不会起作用。您正在使用将立即执行的 IIFE:
(function(s_text){
alert(s_text);
})('Hello')
并且会发出“Hello”提醒。但是,由于该方法不返回任何内容,因此您调用超时时什么也没有。
timeout = setTimeout(/*undefined or null*/, 1000);
这就是问题所在。
编辑: 如果你想使用作用域之外已经存在的变量,只要它是在函数可以看到的父作用域中定义的,就可以直接使用它:
var timeout;
var alert_text = "hello";
timeout = setTimeout(function(){
alert(alert_text);
}, 1000);
关于javascript - setTimeout - Internet Explorer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39898995/