2016-03-30 12 views
-4

Ich habe versucht, den Code für die Funktion zur Selbst rufenden in Javascript zu schreiben:Selbst rufenden JavaScript-Funktion

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

test = myFunc(); 

Aber in der letzten Zeile ich diese Fehlermeldung erhalten:

  • myFunc ist nicht definiert
+1

ich kann erzähle nicht, was du zu erreichen versuchst, indem du nur diesen Code liest. Sie müssen erklären, was Sie versuchen, weil der Code selbst nicht wie etwas aussieht. –

+3

Warum verwenden Sie Klammern um die Funktionsdeklaration, dieses 'var elem = [] ["H" + ello] ["world"] ["!" + "!"](); 'ist nur Unsinn. – Yerken

+0

Es gibt einige Fehler und unnötige Klammern im Code, und die Funktion ist nicht selbstaufrufend. Wie Sergui sagt, müssen Sie genau festlegen, welche Schritte Ihrer Meinung nach der Code sein sollte. – Rhumborl

Antwort

3

Sie haben keine selbstaufrufende Funktion geschrieben.

Sie haben einen benannten Funktionsausdruck geschrieben.

Benannte Funktionsausdrücke erzeugen eine Variable mit demselben Namen wie sie nur in ihrem eigenen Gültigkeitsbereich (im Gegensatz zu Funktionsdeklarationen, die eine Variable mit demselben Namen in dem Bereich generieren, in dem die Funktion deklariert wurde).

Um einen Funktionsausdruck aufzurufen, müssen Sie ihn entweder sofort aufrufen (indem Sie ihm mit () folgen) oder ihn einer Variablen oder Eigenschaft zuweisen, die später aufgerufen werden soll. Sie tun dies auch nicht (während Sie zuvor einen Zuweisungsoperator haben, bedeutet der Komma-Operator, dass stattdessen die Zeichenfolge "as" zugewiesen wird).

(Beachten Sie, dass die Funktion, die Sie geschrieben haben, werden Fehler werfen, wenn man es so nennen es überhaupt keinen Sinn macht..)

+1

Ak. Ich habe das als Teil der Funktion falsch verstanden. – Quentin

0

Hier ein Beispiel für eine Funktion zur Selbst rufenden ist:

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