2014-02-06 92 views
0
var module = (function() { 
    console.log('hello world'); 
}()); 

上述函數在加載時確實有效,意味着它自行執行。但是當我想第二次運行時,我寫了module(),它不起作用,爲什麼?我不想粘貼整個函數體再次運行它..自執行功能不是功能錯誤

我試過angularjs btw,但要麼$scope.moudule()module()爲我工作。

回答

1

自執行歸屬的結果的功能,要存儲的自我執行的結果(在這種情況下不算什麼)。

試試這個:

(module = function() { 
    console.log('hello world'); 
})(); 
+0

每個歸屬都會返回歸因於它自己的內容。標記爲已接受,如果它解決了您的問題:) – cvsguimaraes

0

因爲該函數沒有返回任何東西module是未定義的,這就是爲什麼你得到的錯誤。

的解決方案是創建一個函數,然後執行它

function module() { 
    console.log('hello world'); 
}; 
module() 

現在module是指可以被調用後

+0

着它是自執行第1再後來運行呢? – user3277912

+0

@ user3277912你爲什麼對自我執行如此特別?聲明後可以手動調用它嗎? –

+0

@ user3277912嘗試http://jsfiddle.net/arunpjohny/ap4ha/2/ –