【发布时间】:2010-10-22 06:41:34
【问题描述】:
使用setTimeout时,必须将要执行的代码放入字符串中:
setTimeout('alert("foobar!");', 1000);
但是,我想执行一个在变量中有引用的函数。我希望能够做到这一点:
var myGreatFunction = function() { alert("foobar!"); };
// ...
setTimeout('myGreatFunction();', 1000);
(虽然在现实生活中,警报是一段较长的代码,myGreatFunction 会作为参数传递给其他函数,其中会调用 setTimeout。)
当然,当超时触发时,myGreatFunction 不是一个可识别的函数,因此它不会执行。
我希望 javascript 让我这样做,但它没有:
setTimeout(function() { myGreatFunction(); }, 1000);
有什么好办法解决这个问题吗?
【问题讨论】:
-
"当使用 setTimeout 时,你必须把你想要执行的代码放到一个字符串中" 你当然不会……事实上,你不应该。
-
@Tomalak - 是的,你是对的。请参阅对 Kirtan 回答的评论...:/
-
其实我看到了;为了其他可能看到这个问题的人,只是想在这里明确表示:)
标签: javascript settimeout