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