Beim Aufrufen einer Konstruktorfunktion mit dem Schlüsselwort new wird im Allgemeinen davon ausgegangen, dass die Funktion das neu erstellte zurückgibt Objekt. Unter bestimmten Umständen kann jedoch stattdessen ein anderer Wert zurückgegeben werden.
In JavaScript wird die genaue Bedingung, die dieses Verhalten regelt, in der internen Eigenschaft [[Construct]] der ECMAScript-Spezifikation für Funktionsobjekte definiert. Beim Aufruf führt diese Eigenschaft die folgenden Schritte aus:
Daher bestimmt der von der Konstruktorfunktion zurückgegebene Wert, ob das neu erstellte Objekt zurückgegeben wird oder nicht:
Um zu testen, ob sich das neu erstellte Objekt wirklich von dem vom Konstruktor zurückgegebenen unterscheidet, kann man Folgendes überprüfen: (neue Foo()-Instanz von Foo) === falsch.
Das obige ist der detaillierte Inhalt vonWarum gibt eine Konstruktorfunktion manchmal einen anderen Wert zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!