Statische Variablen in JavaScript
In der objektorientierten Programmierung werden statische Variablen einer Klasse und nicht ihren Instanzen zugeordnet. In JavaScript, das einem prototypbasierten Vererbungsmodell folgt, kann das Konzept statischer Variablen durch verschiedene Ansätze erreicht werden.
Konstruktorfunktionen-Ansatz:
Vor der Einführung Bei den ES6-Klassen nutzte JavaScript Konstruktorfunktionen zur Objekterstellung. Innerhalb der Konstruktorfunktion können Sie private Variablen definieren, auf die nur innerhalb des Gültigkeitsbereichs dieser Funktion zugegriffen werden kann. Öffentliche Variablen und Methoden hingegen können dem this-Objekt der Instanz zugewiesen werden. Darüber hinaus können Sie dem Konstruktorfunktionsobjekt selbst statische Eigenschaften hinzufügen, die von allen Instanzen gemeinsam genutzt werden.
Betrachten Sie das folgende Beispiel:
function MyClass() { var privateVariable = "foo"; this.publicVariable = "bar"; this.privilegedMethod = function() { alert(privateVariable); }; } // Instance method available to all instances (loaded once) MyClass.prototype.publicMethod = function() { alert(this.publicVariable); }; // Static property shared by all instances MyClass.staticProperty = "baz"; var myInstance = new MyClass();
In diesem Beispiel ist staticProperty in definiert die MyClass-Funktion und ist für alle Instanzen von MyClass zugänglich.
ES6-Klassensyntax Ansatz:
ES6 hat das Schlüsselwort class zum Deklarieren von Klassen eingeführt. Mit Klassen können Sie statische Eigenschaften oder Methoden mithilfe des Schlüsselworts static definieren. Auf diese statischen Mitglieder kann über den Klassennamen selbst zugegriffen werden.
Hier ist das vorherige Beispiel, das mit ES6-Klassen implementiert wurde:
class MyClass { constructor() { const privateVariable = "private value"; this.publicVariable = "public value"; this.privilegedMethod = function() { console.log(privateVariable); }; } publicMethod() { console.log(this.publicVariable); } static staticProperty = "static value"; static staticMethod() { console.log(this.staticProperty); } } var myInstance = new MyClass(); myInstance.publicMethod(); // "public value" myInstance.privilegedMethod(); // "private value" MyClass.staticMethod(); // "static value"
Beide Ansätze bieten Möglichkeiten zum Erstellen statischer Variablen in JavaScript. Die ES6-Klassensyntax bietet eine sauberere und prägnantere Methode, während der Konstruktorfunktionsansatz mehr Flexibilität für den Zugriff auf private Variablen innerhalb von Instanzmethoden bietet.
Das obige ist der detaillierte Inhalt vonWie können statische Variablen in JavaScript implementiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!