Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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,我写了一个这样的函数。当我将该函数放在标记内的HTML页面中时,该函数可以正常工作。但当我将此函数放入外部javascript文件并将该文件链接到我的网页时,此函数只执行一次(警报只弹出一次)。我指的是设置超时(foo,1000); 似乎没有任何效果 问题出在哪里?我怎样才能解决这个问题?[但我的js文件上的其他函数工作正常。]修复: 我认为您只需将其包装成闭包函数,如下所示: (function foo() { alert('Hello World!');

我写了一个这样的函数。当我将该函数放在标记内的HTML页面中时,该函数可以正常工作。但当我将此函数放入外部javascript文件并将该文件链接到我的网页时,此函数只执行一次(警报只弹出一次)。我指的是设置超时(foo,1000); 似乎没有任何效果


问题出在哪里?我怎样才能解决这个问题?[但我的js文件上的其他函数工作正常。]

修复:

我认为您只需将其包装成闭包函数,如下所示:

    (function foo() {
        alert('Hello World!');
        setTimeout(foo,1000);
    })();

一点点。

您的外部文件是否只包含上述代码?您的js文件中还有哪些其他函数?您是否可以显示HTML-引用js的位置和调用js的位置?该文件中是否有其他代码?不确定,但对我来说()中的代码不会生成setTimeout可以访问的函数。。。你是这样测试的吗?函数foo(){alert('Hello World!');setTimeout(foo,1000);}foo();这在功能上是不同的
foo
将只运行一次。此外,命名函数表达式也会获得对自身的引用。无需额外关闭。
(function() {
    function foo(){
      console.log('Hello, world!', new Date().toLocaleTimeString());
      setTimeout(foo,1000);
    }

    window.onload = foo;
})();