我创建了一个在 180 万毫秒后运行的函数(我使用 1.8 秒进行测试),但我使用的超时似乎从来没有工作过——即使它与我用于其他所有网站的超时完全相同我制作的应用程序/网站,永远。
核心代码:
setTimeout(Test, 10);
var Test = function(){
alert("KEMAH");
};
jsfiddle:http: //jsfiddle.net/zbMCC/1/
我创建了一个在 180 万毫秒后运行的函数(我使用 1.8 秒进行测试),但我使用的超时似乎从来没有工作过——即使它与我用于其他所有网站的超时完全相同我制作的应用程序/网站,永远。
核心代码:
setTimeout(Test, 10);
var Test = function(){
alert("KEMAH");
};
jsfiddle:http: //jsfiddle.net/zbMCC/1/
将超时放在函数表达式之后。
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 以这种方式处理您的代码:
改成:
setTimeout(Test, 10);
function Test(){
alert("KEMAH");
};
或var Test = function {...
在使用前放置。
因为Test
在那个时候setTimeout
。undefined
或者你可以给里面的功能
setTimeout(function(){
alert("KEMAH");
}, 10);
编辑:
我正在使用(在复杂场景中):
setInterval("GeneratedFunctionName()", 60000); // 60s