Heim >Web-Frontend >js-Tutorial >Wann kann ein JavaScript-Konstruktor etwas anderes als „this' zurückgeben?
Instanzen, in denen Konstruktoren andere Werte als „this“ zurückgeben
Wenn in JavaScript ein Konstruktor mit dem Schlüsselwort new aufgerufen wird, gibt er im Allgemeinen einen Rückgabewert zurück das neu erstellte Objekt. Unter bestimmten Umständen kann jedoch ein anderer Wert zurückgegeben werden, um die Rückgabe dieses Werts zu vermeiden.
Bedingungen für die Rückgabe anderer Werte
Wie in den ECMA-262-Spezifikationen der 3. Ausgabe beschrieben [[Construct]] interne Eigenschaft (Schritt 7), der Rückgabewert eines Konstruktors (Result(6)) bestimmt, ob dieser zurückgegeben wird oder nicht. Wenn Result(6) kein ein Objekttyp ist, wird es stattdessen zurückgegeben. Diese Bedingung ist entscheidend für die korrekte Ausführung des Konstruktors.
Beispiel
Betrachten Sie den folgenden Konstruktor:
function Foo() { return 10; // Returning a non-object primitive } var foo = new Foo();
In diesem Beispiel, da 10 ist ein Nicht-Objekt-Grundelement und wird als Ergebnis des Foo()-Konstruktors zurückgegeben. Somit wird foo der primitive Wert 10 zugewiesen und (neue Foo()-Instanz von Foo) wird als falsch ausgewertet, da foo ein primitiver Typ ist.
Zusammenfassung
Zusammenfassend lässt sich sagen, dass ein Konstruktor nur dann andere Werte als diesen zurückgeben kann, wenn der Rückgabewert des Konstruktors (Ergebnis(6)) kein ein Objekttyp ist. Diese Bedingung ermöglicht die Konstruktion von Objekten mit Nicht-Objektwerten oder die Übergabe der Kontrolle an andere Konstruktoren.
Das obige ist der detaillierte Inhalt vonWann kann ein JavaScript-Konstruktor etwas anderes als „this' zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!