Heim >Web-Frontend >js-Tutorial >Welche Prototyping- und Schließungsmethoden gibt es, um benutzerdefinierte Objekte in JavaScript zu erstellen?
Benutzerdefinierte Objekte erstellen
Es gibt zwei primäre Möglichkeiten Erstellen Sie benutzerdefinierte Objekte in JavaScript: die Prototyping-Methode und die Abschlussmethode.
Prototyping Weg
Mit dieser Methode werden die Eigenschaften und Methoden des Objekts auf seinem Prototyp definiert. Das folgende Beispiel erstellt ein Shape-Objekt und ein Circle-Objekt, die eine Unterklasse der Shape bilden:
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); // Invoke base class constructor this.r = r; } Circle.prototype = new Shape(); // Create prototype inheritance link Circle.prototype.toString = function() { return 'Circular ' + Shape.prototype.toString.call(this) + ' with radius ' + this.r; };
Closure Way
Diese Methode verwendet keine Vererbung. Stattdessen verfügt jede Instanz über eigene Kopien von Eigenschaften und Methoden.
function Shape(x, y) { var that = this; this.x = x; this.y = y; this.toString = function() { return 'Shape at ' + that.x + ', ' + that.y; }; } function Circle(x, y, r) { var that = this; Shape.call(this, x, y); // Invoke base class constructor this.r = r; var _baseToString = this.toString; this.toString = function() { return 'Circular ' + _baseToString.call(that) + ' with radius ' + that.r; }; };
Vor- und Nachteile
Prototyping-Methode
Closure Way
Das Richtige wählen Methode
Die Wahl hängt von den spezifischen Anforderungen des Projekts ab. Bei großen Objekthierarchien mit mehreren Vererbungsebenen ist möglicherweise die Erstellung von Prototypen zu bevorzugen. Bei einfachen, unabhängigen Objekten ist die Verschlussart oft bequemer.
Das obige ist der detaillierte Inhalt vonWelche Prototyping- und Schließungsmethoden gibt es, um benutzerdefinierte Objekte in JavaScript zu erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!