Rückgabewerte für Konstruktoren, die die „this“-Referenz umgehen
Beim Aufrufen eines Konstruktors mit dem Schlüsselwort new gilt das Standardverhalten für Konstruktor, um das neu erstellte Objekt (als „this“ bezeichnet) zurückzugeben. Es gibt jedoch bestimmte Umstände, unter denen ein Konstruktor einen anderen Wert zurückgeben kann, wodurch die Zuweisung von „this“ zum neu erstellten Objekt effektiv verhindert wird.
Gemäß der ECMAScript-Spezifikation Schritt 8 des [[Construct]] Die interne Eigenschaft definiert das Rückgabeverhalten wie folgt:
Wenn der Typ des von der Konstruktorfunktion (Ergebnis(6)) zurückgegebenen Werts kein ist Objekt:
- The value returned by the constructor will be returned instead of "`this`".
Um daher einen anderen Wert als „dies“ von einem Konstruktor zurückzugeben:
Beispiel:
function Foo() { return { name: "sample" }; } var foo = new Foo(); console.log(foo instanceof Foo); // false
In diesem Fall, da der Foo-Konstruktor ein Objekt zurückgibt, das nicht vorhanden ist Eine Instanz des Foo-Konstruktors (neue Foo()-Instanz von Foo) wird als falsch ausgewertet.
Das obige ist der detaillierte Inhalt vonKönnen Konstruktoren andere Werte als „this' zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!