Heim >Web-Frontend >js-Tutorial >„this' vs. direkte Objektreferenz in JavaScript: Welcher Ansatz ist für verschachtelte Funktionen sicherer?
Objektliteralreferenz in der Funktion des eigenen Schlüssels: Implikationen bewerten
In JavaScript ist es üblich, Funktionen in Objektliteralen einzuschließen, was eine praktische Funktion bietet Möglichkeit, Daten und Verhalten zu kapseln. Beim Zugriff auf Objekteigenschaften innerhalb dieser Funktionen entsteht jedoch ein Dilemma: Sollte man dies verwenden oder direkt auf das Objektliteral verweisen?
Verwendung dieser vs. direkter Objektreferenz
Die Das erste Beispiel in der Problembeschreibung verwendet dies, um auf das Objektliteral zu verweisen:
var obj = { key1: "it", key2: function(){return this.key1 + " works!"} }; alert(obj.key2());
Das zweite Beispiel umgeht dies jedoch und verweist direkt das Objekt:
var obj = { key1: "it", key2: function(){return obj.key1 + " works!"} }; alert(obj.key2());
Potenzielle Fallstricke beider Ansätze
Beide Ansätze können Probleme aufwerfen:
Die Fallstricke angehen
Um diese Fallstricke zu umgehen, gibt es mehrere Möglichkeiten exist:
Sichere Implementierung
Der folgende Code demonstriert eine sichere Implementierung mithilfe eines Abschlusses:
var obj = (function(){ var local = { key1: "it", key2: function(){ return local.key1 + " works always!" } }; return local; })();
Das obige ist der detaillierte Inhalt von„this' vs. direkte Objektreferenz in JavaScript: Welcher Ansatz ist für verschachtelte Funktionen sicherer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!