2013-07-27 32 views
0
(function foo() { 
     alert('Hello World!'); 
     setTimeout(foo,1000); 
    })(); 

工作我寫了這樣的功能。當我把這個函數放在我的HTML頁面內的標籤裏時,這個函數可以正常工作。但是當我把這個函數放到一個外部的javascript文件中並且把這個文件鏈接到我的網頁時,這個函數只執行一次(警報只彈出一次)。我的意思是setTimeout(foo,1000); 似乎沒有任何效果。代碼文件無法正常

問題出在哪裏,以及如何才能擺脫這件事? [但在我的js文件等功能工作正常。]

+0

你是否外部文件只包含上面的代碼?你有什麼其他功能在你的js文件中? –

+0

你是否也可以顯示HTML - JS被引用的地方以及它被調用的地方? –

+0

我無法複製 – sabof

回答

0

FIXED:

我想你只需要包裝出到閉合功能類似:

(function() { 
    function foo(){ 
     console.log('Hello, world!', new Date().toLocaleTimeString()); 
     setTimeout(foo,1000); 
    } 

    window.onload = foo; 
})(); 

點點theory and examples

+0

這在功能上是不同的; 'foo'只會運行一次。另外,命名的函數表達式可以獲得對自己的引用。不需要額外的關閉。 – sabof

+0

@sabof添加修復程序,謝謝。 – CodeGroover