非工作Javascript超时事件

时间:2012-11-25 11:39:23

标签: javascript html5 css3 settimeout

我创建了一个在180万毫秒后运行的函数(我用1.8秒进行测试)但是我使用的超时似乎永远不会起作用 - 即使它与我用过的完全相同我做过的所有其他网络应用/网站。

核心代码:

setTimeout(Test, 10);

var Test = function(){
    alert("KEMAH");
};

Jsfiddle:http://jsfiddle.net/zbMCC/1/

4 个答案:

答案 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. 变量声明
  2. 功能声明
  3. 变量赋值/操作(这是其他所有内容按其出现的顺序运行的地方)

答案 1 :(得分:0)

更改为:

setTimeout(Test, 10);

function Test(){
    alert("KEMAH");
};

或在使用之前放置var Test = function {...

因为当时Test中的setTimeoutundefined

答案 2 :(得分:0)

或者您可以在

中提供功能
setTimeout(function(){
    alert("KEMAH");
}, 10);

答案 3 :(得分:0)

编辑:

我正在使用(在复杂的情况下):

setInterval("GeneratedFunctionName()", 60000); // 60s
相关问题