Meine Frage ist von der Verwendung new function(){ ... }
über new Function();
JavaScript neue Funktion Ausdruck und neue Funktion Konstruktor
Mein Verständnis so weit/Annahme
- das resultierende Objekt bezüglich Wenn wir eine Funktion Funktion create() oder new Function() erhalten wir ein Objekt als Funktion konfiguriert (seine internen Steckplätze zeigen ein Funktionstyp-Objekt an)
- Mit oder ohne den neuen Operator gibt der Konstruktor Function() eine neue Funktion obj zurück ect
- einen Funktionsausdruck Mit liefert ein Funktionsobjekt, das intern verwendet die Funktion() Konstruktor
- Eine Funktion Ausdruck Optimierung mit Parsen der Funktionskörper
Meine Frage meine Vermutung
Nach liefert oben, warum gibt new Function();
und new function(){ ... }
verschiedene Dinge zurück?
Die erste gibt ein Funktionsobjekt zurück, aber das letztere gibt ein Standardobjekt zurück. Wenn ein Funktionsausdruck unter der Haube den Konstruktor Function() verwendet, warum verhält sich dieser nicht genauso wie new Function();
?
Mit new function(){ ...}
würde ich ein Funktionsobjekt, kein Standardobjekt erwarten.
'function() {} == neue Funktion()', 'neue Funktion() {} == neue neue Funktion()' . – zzzzBov