2016-03-30 66 views
-4

我試着寫自調用函數的代碼在Javascript:自我調用函數的JavaScript

var ello = ("ello"); 
obj = (function myFunc(){var elem= []["H" + ello]["world"]["!" + "!"](); 
return elem; 
}, "as"); 

test = myFunc(); 

但在我收到此錯誤信息的最後一行:

  • myFunc的是未定義
+1

我可以通過閱讀這些代碼並不能說明你試圖達到的目標。你必須解釋你要做什麼,因爲代碼本身看起來不像任何東西。 –

+3

爲什麼你在函數聲明周圍使用括號,這個'''''''! +「!」]();'只是無稽之談。 – Yerken

+0

代碼中有相當多的錯誤和不必要的括號,並且該函數不是自調用的。正如Sergui所說,你需要準確地說明你認爲代碼應該做什麼步驟。 – Rhumborl

回答

3

您尚未編寫自調用函數。

你已經寫了一個命名的函數表達式。

命名函數表達式生成具有相同名稱的變量,他們只內自己的範圍(相對於它的作用與產生在範圍相同的名稱,其中被宣佈功能的變量聲明)。

爲了調用函數表達式,您必須立即調用它(通過跟在()之後),或者將其賦值給變量或屬性以稍後調用。你既沒有做(當你在它前面有一個賦值操作符時,逗號操作符之後意味着字符串"as"被賦值)。

(請注意,當你調用它,你寫的函數將引發錯誤這是沒有意義的。)

+1

Ak。我誤以爲是功能的一部分。 – Quentin

0

這裏是一個自我調用函數的例子:

var ello = 'ello'; 
var result = function() { return 'H' + ello}() 
console.log(result) // outputs > Hello