⊗jsOpAdMCL 43 of 60 menu

Verlust des Kontexts im Methodencode in OOP in JavaScript

Bei der Verwendung des Quellcodes einer Klassenmethode kann der Kontext verloren gehen. Schauen wir uns ein Beispiel an. Nehmen wir an, wir haben die folgende Klasse:

class User { #name; constructor(name) { this.#name = name; } getName() { return this.#name; } }

Erstellen wir ein Objekt dieser Klasse:

let user = new User('john');

Schreiben wir den Methodencode in eine Variable:

let func = user.getName;

Im Moment des Schreibens der Methode in die Variable wurde der Kontext verloren. Jetzt wird this innerhalb des Methodencodes nicht auf das Klassenobjekt zeigen. Prüfen wir das, rufen wir unsere Funktion auf:

console.log(func()); // Fehler

Um das Problem zu lösen, kann der Kontext an die Funktion gebunden werden, zum Beispiel über bind:

func = func.bind(user); console.log(func()); // funktioniert
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen