我创建了一个在180万毫秒后运行的函数(我用1.8秒进行测试)但是我使用的超时似乎永远不会起作用 - 即使它与我用过的完全相同我做过的所有其他网络应用/网站。
核心代码:
setTimeout(Test, 10);
var Test = function(){
alert("KEMAH");
};
Jsfiddle:http://jsfiddle.net/zbMCC/1/
答案 0 :(得分:5)
在函数表达式之后放置超时。
var Test = function(){
alert("KEMAH");
};
setTimeout(Test, 10);
函数表达式(赋给变量的函数)不会在范围内“提升”。因此代码按它们出现的顺序执行。
另一方面,函数声明在范围内被提升,因此以下代码运行完美。注意函数是如何声明的。它被声明为名为Test
的函数,而不是将函数赋给变量Test
:
//because JavaScript treats function declarations as if they were declared
//UP HERE <--------------.
//|
setTimeout(Test, 10); //|
//|
function Test(){ //------'
alert("KEMAH");
};
JavaScript以这种方式代码:
答案 1 :(得分:0)
更改为:
setTimeout(Test, 10);
function Test(){
alert("KEMAH");
};
或在使用之前放置var Test = function {...
。
因为当时Test
中的setTimeout
为undefined
。
答案 2 :(得分:0)
或者您可以在
中提供功能setTimeout(function(){
alert("KEMAH");
}, 10);
答案 3 :(得分:0)
编辑:
我正在使用(在复杂的情况下):
setInterval("GeneratedFunctionName()", 60000); // 60s