Heim >Web-Frontend >js-Tutorial >Wie können JavaScript-Prototypen Objektreferenzen und Vererbung in großen Anwendungen beibehalten?

Wie können JavaScript-Prototypen Objektreferenzen und Vererbung in großen Anwendungen beibehalten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-28 22:13:18948Durchsuche

How Can JavaScript Prototypes Maintain Object References and Inheritance in Large Applications?

Beibehaltung der Objektreferenz und Vererbung in JavaScript-Prototypen

Bei der Organisation großer Anwendungen, die mit JavaScript-Prototypen und Vererbung erstellt wurden, ist es von entscheidender Bedeutung, die Codestruktur beizubehalten Dabei wird sichergestellt, dass Objektverweise und Vererbung intakt sind. Wenn wir zum Beispiel eine Klasse Carousel mit verschiedenen Funktionen wie next(), prev() und bindControls() haben, möchten wir sie vielleicht so organisieren:

Carousel.prototype.controls = {
   next: function () { ... } , 
   prev: function() { ... },
   bindControls: function () { .. }
}

Dieser Ansatz beeinträchtigt jedoch die Wert von „this“, der den Kontext des Objekts enthält, für das eine Methode aufgerufen wird. Um dieses Problem zu beheben, können wir in Betracht ziehen, Controls als separate Klasse zu erstellen:

var Controls = function (controllable_object) {
    this.ref = controllable_object;
};
Controls.prototype.next = function () {
    this.ref.foo();
}

Dadurch wird sichergestellt, dass der Verweis auf das ursprüngliche Objekt auch dann erhalten bleibt, wenn die Funktion next() in einer abgeleiteten Klasse wie BigCarousel überschrieben wird.

BigCarousel.prototype.next = function () {
    this.controls.next();
}

Alternativ können Sie einen Dependency-Injection-Ansatz anwenden, um die Logik zu entkoppeln:

var Controls = function () {};
Controls.prototype.next = function (ref) {
    ref.foo();
}

var Carousel = function () {
    this.controls = new Controls();
};

Diese Methode bietet mehr Flexibilität zum späteren Hinzufügen benutzerdefinierter Controller. Durch die Trennung von Belangen können Sie eine saubere und erweiterbare Codebasis beibehalten und gleichzeitig Objektreferenzen und Vererbung beibehalten.

Das obige ist der detaillierte Inhalt vonWie können JavaScript-Prototypen Objektreferenzen und Vererbung in großen Anwendungen beibehalten?. 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