JavaScript bietet zwei unterschiedliche Ansätze zum Erstellen benutzerdefinierter Objekte mit Eigenschaften und Methoden: die Prototyp-Methode und die Abschlussmethode.
Diese Methode ist nativer für JavaScript und nutzt die Prototyp-Lookup-Eigenschaft des Konstruktors Funktionen.
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(); // Set subclass prototype Circle.prototype.toString = function() { return 'Circular ' + Shape.prototype.toString.call(this) + ' with radius ' + this.r; };
Diese Methode vermeidet die prototypische Vererbung insgesamt und erstellt für jede Instanz einen neuen Abschluss.
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 constructor this.r = r; var _baseToString = this.toString; this.toString = function() { return 'Circular ' + _baseToString.call(that) + ' with radius ' + this.r; }; } var myCircle = Circle(); // Using `new` is optional here
Beide Methoden haben Vor- und Nachteile.
Prototyp Weg
Schließung Weg
Letztendlich hängt die beste Wahl von den spezifischen Projektanforderungen und -präferenzen ab.
Das obige ist der detaillierte Inhalt vonPrototyp vs. Abschluss: Welche JavaScript-Objekterstellungsmethode ist die richtige für Sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!