Ich lese ein tolles Buch namens "Secrets of the JavaScript Ninja" von John Resig geschrieben & Bär Bibeaoult. In Kapitel 3.2 gibt es ein Beispiel;Warum haben anonyme Funktionen in Javascript Namen?
var canFly = function(){ return true; };
Dann heißt es;
Eine anonyme Funktion wird erstellt und einer globalen Variablen namens canFly zugewiesen. Aufgrund der funktionalen Eigenschaft von JavaScript kann die Funktion über diese Referenz als canFly() aufgerufen werden. In dieser Hinsicht ist es fast funktional, eine benannte Funktion namens "canFly" zu deklarieren, aber nicht ganz. Ein wichtiger Unterschied ist, dass die name-Eigenschaft der Funktion "", nicht "canFly" ist.
Aber wenn ich versuche, das Beispiel auf Chrome Developer Tools auszuführen und die name
Eigenschaft der canFly
Funktion zu überprüfen, gibt es den Wert „canFly“ statt eine leere Zeichenfolge.
Haben anonyme Variablen, die Variablen zugewiesen wurden, in den früheren Tagen keine Namen? Wenn ja, was hat sich geändert? Oder haben die Autoren einen Fehler gemacht?
Ich kann mich nicht erinnern, wo ich es gelesen habe, aber ich erinnere mich zu lesen, dass in neuen Versionen von Node/V8 sogar anonyme Funktionen, wenn sie einer Variablen zugewiesen werden, den Variablennamen erhalten. Wird eine Antwort posten, wenn ich einen Link finde. – Aron
[* Abgeleitete Funktionsnamen *: Variablen und Methoden können den Namen einer anonymen Funktion von ihrer syntaktischen Position ableiten (neu in ECMAScript 2015)] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenz/Global_Objects/Funktion/Name # Inferred_Funktionsnamen) –
Da sind wir. Danke @AlexK. – Aron