2016-12-15 4 views
-2

Ich bin neu in JavaScript und ich bin ein Buch zu lesen, die sagt:Funktion Ausdruck ausgewertet ersten

In einem Funktionsausdruck z.B. f (0) (wobei f der Funktionsausdruck ist) wird der Funktionsausdruck zuerst ausgewertet. Wenn der Wert des Funktionsausdrucks kein aufrufbares Objekt ist, wird ein TypeError ausgelöst.

Was bedeutet es, dass

(1) Die Funktion Ausdruck

(2) Die Funktion Ausdruck ist kein aufrufbar Objekt zuerst ausgewertet wird? Meine Gedanken

:

(1): Die ursprüngliche Definition der Funktion geladen wird zuerst

(2): Für das Beispiel von oben ("zB f (0)") bedeutet dies: Es existiert keine solche Funktion f.

Ist das richtig?

+0

Ein Funktionsausdruck ist nicht unbedingt nur ein Funktionsname, er kann Ausdruck einer beliebigen Komplexität sein. Zum Beispiel können Sie ein Array von Funktionen haben, und dann tun Sie Array [i] (0) '. Es wird den Ausdruck 'array [i]' ausgewertet, um die Funktion zu erhalten. – Barmar

+0

Welches Buch ist das? 'f (0)' ist ein * CallExpression * wobei 'f' ein * Identifier * ist. Wenn der Ausdruck ausgewertet wird, wird der Wert von "f" in der aktuellen Umgebung nachgeschlagen. Oder ist "f" ein "Meta-Platzhalter" für einen beliebigen Ausdruck? –

Antwort

0

ES die Funktion Ausdruck erste

objekt

kein aufrufbar ist f

die Funktion den Wert nachschlägt

ausgewertet Dies bedeutet, dass die JS Motor des Ausdrucks Das bedeutet "Wenn f keine Funktion ist"

Verwandte Themen