Ich versuche, den Konstruktor dazu zu bringen, die Objektkonstruktion abzubrechen, wenn etwas fehlschlägt, zum Beispiel kann es keine Leinwand bekommen.
Aber da ich new
verwende, sehe ich, dass klass () immer this
zurückgibt, unabhängig von einem Rückgabewert oder einem anderen Wert. Kann ich das umgehen, um null zurückzugeben?
Nun, wenn ich daran denke, könnte eine Lösung darin bestehen, die neue Instanz innerhalb von class () zu erstellen und diese Instanz oder null zurückzugeben, und nicht new
, gibt es eine bessere Lösung?
Die bessere Lösung wäre, einen Fehler zu erzeugen:
%Vor%EDIT: Konstruktoren können "gezwungen" werden, keine Instanz zurückzugeben:
%Vor% Die seltsame Sache ist jedoch, dass, wenn ein "Konstruktor" eine Zahl, eine Zeichenfolge, true
, false
usw. zurückgibt, es tatsächlich eine Instanz zurückgibt. Die zweite Lösung funktioniert nur, wenn der Konstruktor ein leeres Array []
oder ein leeres Objekt {}
zurückgibt.
Sie können eine Factory mit dem Konstruktor in einer Funktion kombinieren, indem Sie die in John Resigs Artikel beschriebene Technik verwenden . Beispiel:
%Vor%Die Antwort ist leider, Sie können nicht: (. Die Gründe sind in dieser Antwort:
Welche Werte kann ein Konstruktor zurückgeben, um eine Rückkehr zu vermeiden das?
Tags und Links javascript