Heim > Web-Frontend > js-Tutorial > Wie kann ich die „this'-Bindung mit jQuerys „$(this)' innerhalb der ES6-Pfeilfunktionen beibehalten?

Wie kann ich die „this'-Bindung mit jQuerys „$(this)' innerhalb der ES6-Pfeilfunktionen beibehalten?

Barbara Streisand
Freigeben: 2024-12-11 20:47:12
Original
280 Leute haben es durchsucht

How Can I Preserve `this` Binding with jQuery's `$(this)` Inside ES6 Arrow Functions?

Lexikalische Bindung dieser Bindung mit jQuery $(this) in ES6-Pfeilfunktionen beibehalten

Beim Arbeiten mit jQuery-Klickbindungen können Entwickler auf ein Problem stoßen beim Versuch, ES6-Pfeilfunktionen mit lexikalischer Bindung zu verwenden. Dies liegt daran, dass Pfeilfunktionen in ES6 dies lexikalisch binden, was zu unerwartetem Verhalten führen kann, wenn jQuery verwendet wird, das einen Abschluss mit einem anderen this-Wert erwartet.

Im bereitgestellten Beispiel:

this._pads.on('click', () => {
  if (this.go) { $(this).addClass('active'); }
});
Nach dem Login kopieren

Die Pfeilfunktion bindet dies lexikalisch, wodurch $(this) auf das Game-Objekt und nicht auf das angeklickte Element verweist. Um dieses Problem zu beheben, muss event.currentTarget anstelle von $(this) verwendet werden:

this._pads.on('click', (event) => {
  if (this.go) { $(event.currentTarget).addClass('active'); }
});
Nach dem Login kopieren

Dadurch wird sichergestellt, dass $(this) korrekt auf das angeklickte Element verweist, da jQuery event.currentTarget explizit bereitstellt Behandeln Sie Szenarien, in denen dieser Wert möglicherweise nicht konsistent ist.

Verstehen der lexikalischen Bindung in ES6

ES6-Pfeilfunktionen haben eine lexikalische This-Bindung, was bedeutet, dass sie den This-Wert ihres umgebenden Kontexts erben. Dies kann sowohl vorteilhaft als auch herausfordernd sein, da es versehentliche Bindungsprobleme verhindern kann, erfordert aber auch sorgfältige Überlegungen bei der Arbeit mit Rückrufen.

Fazit

Bei Verwendung von ES6-Pfeilfunktionen mit Bei jQuery-Klickbindungen ist es wichtig, die lexikalische Bedeutung dieser Bindung zu berücksichtigen und die Verwendung von event.currentTarget in Betracht zu ziehen, um explizit auf das angeklickte Element zuzugreifen. Dies stellt die korrekte Funktionalität sicher und verhindert unerwartetes Verhalten aufgrund der Variation dieser Werte.

Das obige ist der detaillierte Inhalt vonWie kann ich die „this'-Bindung mit jQuerys „$(this)' innerhalb der ES6-Pfeilfunktionen beibehalten?. 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