Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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 如何从匿名函数中对同一函数进行setTimeout调用?_Javascript - Fatal编程技术网

Javascript 如何从匿名函数中对同一函数进行setTimeout调用?

Javascript 如何从匿名函数中对同一函数进行setTimeout调用?,javascript,Javascript,如何从匿名函数中调用匿名函数?给它一个标识符: (function () { if (some scripts loaded) { otherFunction(); } else { window.setTimeout( "CALL_SELF_AGAIN_HERE" , 100); } })(); 这就是所谓的“命名函数表达式”。标识符仅在其引用的函数内的作用域中 不要使用,因为它已弃用,

如何从匿名函数中调用匿名函数?

给它一个标识符:

 (function () {
        if (some scripts loaded) {
            otherFunction();
        } else {
            window.setTimeout( "CALL_SELF_AGAIN_HERE" , 100);
        }
    })();
这就是所谓的“命名函数表达式”。标识符仅在其引用的函数内的作用域中


不要使用,因为它已弃用,并且在严格模式下实际上会抛出语法错误。

如果要避免创建任何新的顶级函数名,可以将代码放在本地函数中,该函数为您提供一个函数名,以便最初执行并传递到
setTimeout()


它只在闭包内“可见”。接受@James Allardice的回答,因为它更简单,并且尊重范围。
(function named () {
    if (some scripts loaded) {
        otherFunction();
    } else {
        window.setTimeout( named , 100);
    }
})();
(function () {
    function doit() {
        if (some scripts loaded) {
            otherFunction();
        } else {
            window.setTimeout(doit, 100);
        }
    }
    // execute the first time
    doit();
})();