Heim > Web-Frontend > js-Tutorial > Wie kann ich den Wert „this' beibehalten, wenn ich prototypbasierten JavaScript-Code organisiere?

Wie kann ich den Wert „this' beibehalten, wenn ich prototypbasierten JavaScript-Code organisiere?

Barbara Streisand
Freigeben: 2024-11-30 12:07:12
Original
623 Leute haben es durchsucht

How Can I Maintain the

Code-Organisation und der „diese“-Wert in objektorientiertem JavaScript

Bei der Organisation von prototypbasiertem JavaScript-Code entsteht eine häufige Herausforderung Beibehaltung von Objektreferenzen und Vererbung. Angenommen, Sie haben eine Carousel-Klasse mit verschiedenen Funktionen wie next(), prev() und bindControls(). Um die Codeorganisation zu verbessern, möchten Sie diese Funktionen wie folgt unter einer Steuereigenschaft gruppieren:

Carousel.prototype.controls = {
   next: function () { ... } , 
   prev: function() { ... },
   bindControls: function () { .. }
};
Nach dem Login kopieren

Dieser Ansatz stört jedoch den „this“-Wert, der für den Zugriff auf Objekteigenschaften und -methoden von entscheidender Bedeutung ist. Um den „this“-Wert im ursprünglichen Kontext beizubehalten, können Sie die folgende Lösung übernehmen:

Erstellen Sie eine Controls-Klasse, die einen Verweis auf das steuerbare Objekt im Controls-Konstruktor behält. Die Methode in Controls, die Aktionen wie next() verarbeitet, verwendet die Referenz, um die entsprechende Methode im steuerbaren Objekt aufzurufen.

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

var Carousel = function () {
    this.controls = new Controls(this);
};
// ..
Nach dem Login kopieren

Dies stellt die Vererbung sicher und ermöglicht es Ihnen, die Implementierung von Controls durch a zu überschreiben Mechanismus wie Abhängigkeitsinjektion.

Das obige ist der detaillierte Inhalt vonWie kann ich den Wert „this' beibehalten, wenn ich prototypbasierten JavaScript-Code organisiere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage