Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript设置超时函数混淆_Javascript - Fatal编程技术网

Javascript设置超时函数混淆

Javascript设置超时函数混淆,javascript,Javascript,您好,您能解释一下设置超时(函数,时间)和设置超时(函数(),时间)基本上,您可以定义函数,然后将其作为设置超时的第一个参数传递: function onTimeout() { } setTimeout(onTimeout, 3000); setTimeout(function() { // Do stuff }, 3000); …或者在调用setTimeout时将匿名函数作为参数: function onTimeout() { } setTimeout(onTimeout,

您好,您能解释一下设置超时(函数,时间)设置超时(函数(),时间)

基本上,您可以定义函数,然后将其作为
设置超时的第一个参数传递:

function onTimeout() {

}

setTimeout(onTimeout, 3000);
setTimeout(function() {
   // Do stuff
}, 3000);
…或者在调用
setTimeout
时将匿名函数作为参数:

function onTimeout() {

}

setTimeout(onTimeout, 3000);
setTimeout(function() {
   // Do stuff
}, 3000);

以下示例将解释这种差异:

在超时时调用定义的函数

setTimeout(my_function, 1000);

function my_function() {
    alert("Time is up!");
}
setTimeout(function() {
    alert("Time is up!");
}, 1000);
在超时时调用匿名函数

setTimeout(my_function, 1000);

function my_function() {
    alert("Time is up!");
}
setTimeout(function() {
    alert("Time is up!");
}, 1000);

第一个示例调用一个已经定义的函数,而另一个示例在程序上以匿名函数的形式运行代码。我根据需要使用这两种方法。

其他两个答案都是正确的,但以防万一,你的问题不是关于匿名函数,而是类似这样的问题

    function onTimeout(){
     console.log('foo');
    };

    setTimeout(onTimeout, 1000); // First form

    setTimeout(onTimeout(), 1000); // Second Form
不同的是,在第一种形式中,函数onTimeout在1秒后调用,这通常是所需的结果

在第二种形式中,立即调用on Timout,并在1秒后调用该函数返回的任何内容;在这种情况下,将调用undefined,因为console.log返回undefined。因此函数将立即执行,1秒后不会发生任何事情