Javascript: Die Notwendigkeit von „this.var“ für Objektvariablen
In bestimmten Programmiersprachen wie C ist die Deklaration von Objektvariablen mit „this ->variable“ ist oft optional, wenn die Variable im Gültigkeitsbereich der Klasse liegt. In Javascript ist jedoch die Verwendung von „this.var“ für jede Variable in einem Objekt von entscheidender Bedeutung.
Warum „this.var“ erforderlich ist
Javascript verwendet ein Unique prototypisches Vererbungsmodell statt klassenbasierter Systeme. Mit dem Schlüsselwort „new“ erstellte Objekte erben Eigenschaften und Methoden von ihrem Prototypobjekt.
Beim Definieren einer Methode innerhalb einer Objektkonstruktorfunktion verweist das Schlüsselwort „this“ auf das zu erstellende Objekt. Durch das Zuweisen von Eigenschaften ohne Verwendung von „this“ werden lokale Variablen innerhalb der Methode erstellt, auf die außerhalb der Funktion nicht zugegriffen werden kann.
Beispiel: Ohne „this.var“
function Foo() { bar = 0; getBar = function() { return bar; } } const foo = new Foo(); console.log(foo.getBar()); // ReferenceError: bar is not defined
Beispiel: Mit „this.var“
function Foo() { this.bar = 0; this.getBar = function() { return this.bar; } } const foo = new Foo(); console.log(foo.getBar()); // 0
Alternative Ansatz: Schließung
Um private Variablen innerhalb eines Objekts zu erstellen, verwenden Javascript-Entwickler häufig einen Schließungsansatz. Durch die Definition lokaler Variablen innerhalb der Konstruktorfunktion und die Rückgabe privilegierter Methoden, die auf diese Variablen zugreifen, ist es möglich, private Attribute beizubehalten und gleichzeitig öffentliche Methoden verfügbar zu machen.
Beispiel: Verwendung von „Closure“
function Foo() { let bar = "foo"; this.getBar = function() { return bar; }; } const foo = new Foo(); console.log(foo.getBar()); // "foo"
Fazit
Die Verwendung von „this.var“ mag zwar ausführlich erscheinen, ist es aber In Javascript ist sie unerlässlich, um sicherzustellen, dass Objektvariablen innerhalb von Methoden zugänglich sind und um die Unterscheidung zwischen Variablen auf lokaler und Objektebene aufrechtzuerhalten. Alternativ bietet die Verwendung von Abschlüssen eine Möglichkeit, private Variablen innerhalb von Objekten zu erstellen und so die Kapselung und Datensicherheit zu verbessern.
Das obige ist der detaillierte Inhalt vonWarum ist „this.var' für Objektvariablen in JavaScript notwendig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!