Heim >Web-Frontend >js-Tutorial >Welche Prototyping- und Schließungsmethoden gibt es, um benutzerdefinierte Objekte in JavaScript zu erstellen?

Welche Prototyping- und Schließungsmethoden gibt es, um benutzerdefinierte Objekte in JavaScript zu erstellen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-14 16:54:10421Durchsuche

What are the Prototyping and Closure Ways to Create Custom Objects in JavaScript?

So erstellen Sie ein benutzerdefiniertes Objekt in JavaScript „richtig“

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

  • Vorteile: Effizient für große Objekthierarchien
  • Nachteile: Komplexer zu implementieren, Instanz des Operators funktioniert

Closure Way

  • Vorteile: Einfacher zu implementieren, unabhängige Instanzen
  • Nachteile: Weniger effizient, keine direkte Unterstützung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn