2014-02-20 76 views
-3

我得到這個錯誤:Property 'myFunction' of object [object Object] is not a functionProperty對象的「myFunction的」的翻譯:不是一個函數

myFunction= (function(){ 
    //something 
})(); 

myFunction(); 

什麼錯在這裏的?我可以再次撥打我的自動執行功能嗎?如果我在自我執行功能中使用var,這也不起作用。

+0

你的函數體沒有返回的功能。 –

+1

你將不得不更清楚你認爲這涉及到AJAX還是「非異步」。沒有任何跡象顯示你的假設是正確的;你發佈的代碼與AJAX無關,並且使一個函數自動執行並不會使它「非異步」。 – meagar

回答

0

通過包裝括號

(function(){ 
    // do something 
})(); 

你正在創建一個被立即執行函數表達式的函數調用。函數表達式的結果將被分配給您的變量myFunction

你可能想是這樣的:

var myFunction = (function(){ 
    return { 
     doStuff : function(myVariable){ 
      // do stuff 
     }  
    }; 
})(); 

這將創建一個分配給myFunction變量返回的對象。其中該返回對象的屬性是doStuff這是一個函數,變量,你可以調用像

myFunction.doStuff('hello world'); 
+0

非常感謝! – user3318525

0

您正在將返回值指定爲myFunction。如果你的返回值不是函數,那麼myFunction不是函數,你不能調用它。

如果你想存儲稍後再次執行它的功能,你不想自動執行的函數表達式:

myFunction= function(){ 
    //something 
}; 

myFunction(); 
+0

我想運行它,因爲我想使ajax非異步 – user3318525

+0

這與使其自行執行無關。 – meagar

0
var myFunction = function(){}; 

myFunction(); 

你必須創建一個函數來調用。自調用閉包不返回函數。

+0

我想運行它,因爲我想使ajax非異步 – user3318525

+0

在這種情況下不需要關閉。看看jQuery ajax api和asynch = false設置 – TGH

+0

我使用Angularjs – user3318525

相關問題