Heim >Web-Frontend >js-Tutorial >Wie kann man beim Erstellen benutzerdefinierter Objekte in JavaScript zwischen Prototyping und Closing wählen?
So erstellen Sie benutzerdefinierte Objekte in JavaScript
JavaScript bietet verschiedene Ansätze zum Erstellen benutzerdefinierter Objekte. Hier sind zwei unterschiedliche Modelle:
Prototyping-Methode
Das Prototyping-Modell stammt ursprünglich aus JavaScript. Dabei wird die Prototypeigenschaft einer Konstruktorfunktion verwendet, um Eigenschaften und Methoden zu Instanzen hinzuzufügen:
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 constructor this.r = r; } Circle.prototype = new Shape(); // Inherit prototype Circle.prototype.toString = function() { return 'Circular ' + Shape.prototype.toString.call(this) + ' with radius ' + this.r; };
Vorteile:
Nachteile:
Closure Way
Das Schließungsmodell vermeidet Vererbung durch Verwendung von Abschlüssen zum Einschließen instanzspezifischer Daten 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); this.r = r; var _baseToString = this.toString; this.toString = function() { return 'Circular ' + _baseToString.call(that) + ' with radius ' + that.r; }; }; var mycircle = new Circle();
Vorteile:
Nachteile:
Das obige ist der detaillierte Inhalt vonWie kann man beim Erstellen benutzerdefinierter Objekte in JavaScript zwischen Prototyping und Closing wählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!