Heim > Artikel > Web-Frontend > Wie kann ich den Kontext in Event-Handler-Rückrufen in JavaScript beibehalten?
Kontext in Event-Handler-Rückrufen bewahren: Die „self = this“-Technik
In JavaScript können Instanzmethoden als Event-Handler-Rückrufe einen Gültigkeitsbereich verursachen Änderungen. Wie der bereitgestellte Code zeigt, erfordern Ereignisbindungen eine Variable, um den Aufrufkontext beizubehalten, was zur Zuweisung „var self = this“ führt.
Dieser Ansatz ist zwar funktionsfähig, wirft jedoch Bedenken hinsichtlich seiner Wirksamkeit auf. Eine allgemeinere Lösung befasst sich mit dem Kernproblem: der Kanalisierung von Variablen in eingebetteten Funktionen.
In JavaScript ermöglichen Abschlüsse den Zugriff auf externe Variablen. Pseudovariablen wie „this“ und „arguments“ erfordern jedoch eine sorgfältige Handhabung. Durch die Zuweisung zu Aliasen innerhalb der übergeordneten Funktion wird ihre Verfügbarkeit in eingebetteten Funktionen sichergestellt.
Beispiel
Um „this“ in eingebetteten Funktionen zu verwenden, weisen Sie es einer Variablen zu und verwenden Sie es stattdessen der Alias:
var that = this; function xyz() { // "this" is different here! --- but we don't care! console.log(that); // now it is the right object! function qwe() { // "this" is different here too! --- but we don't care! console.log(that); // it is the right object here too! } ... };
Dieser Ansatz ist nicht auf „this“ beschränkt; „Argumente“ erfordern eine ähnliche Behandlung, um einen konsistenten Zugriff in eingebetteten Funktionen sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie kann ich den Kontext in Event-Handler-Rückrufen in JavaScript beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!