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?
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
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? –