Heim >Web-Frontend >js-Tutorial >Prototyping vs. Schließung in JavaScript: Welche Methode sollte ich zum Erstellen benutzerdefinierter Objekte verwenden?
Benutzerdefinierte Objekte in JavaScript verstehen
Das Erstellen benutzerdefinierter Objekte in JavaScript erfordert die Wahl zwischen zwei Hauptmethoden: der Prototyping-Methode und der Abschlussmethode.
Der Prototyping-Weg
Im Prototyping Auf diese Weise werden Objekte basierend auf einem Prototypobjekt erstellt. Eine Konstruktorfunktion wird definiert und Methoden und Eigenschaften werden zu ihrer Prototypeigenschaft hinzugefügt. Die Vererbung wird durch die Verwendung der Hilfsfunktion subclassOf() erreicht.
Die Schließungsmethode
Bei der Schließungsmethode ist jedes Objekt eine eigenständige Entität mit eigenen Kopien von Methoden und Eigenschaften. Anstelle der Vererbung werden Kopien von Methoden als Abschlüsse weitergegeben. Standardmäßig bezieht sich dies auf das aktuelle Objekt, was bei der Ereignisbehandlung hilfreich ist.
Welche Verwendungsmethode
Der beste Ansatz hängt von Ihren spezifischen Anforderungen ab:
Beispielcode für benutzerdefiniertes Objekt
Verwendung der Prototyping-Methode:
function Shape(x, y) { this.x = x; this.y = y; } Shape.prototype.toString = function() { return 'Shape at ' + this.x + ', ' + this.y; }; function Circle(x, y, r) { Shape.call(this, x, y); this.r = r; } Circle.subclass(Shape); Circle.prototype.toString = function() { return 'Circle at ' + this.x + ', ' + this.y + ', with radius ' + this.r; };
Verwendung der Verschlussart:
function Shape(x, y) { var that = this; that.x = x; that.y = y; that.toString = function() { return 'Shape at ' + that.x + ', ' + that.y; }; } function Circle(x, y, r) { Shape.call(this, x, y); this.r = r; var _baseToString = this.toString; this.toString = function() { return 'Circle at ' + _baseToString.call(that) + ', with radius ' + this.r; }; }
Das obige ist der detaillierte Inhalt vonPrototyping vs. Schließung in JavaScript: Welche Methode sollte ich zum Erstellen benutzerdefinierter Objekte verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!