⊗jsOpAdMCL 43 of 60 menu

Perte de contexte dans le code d'une méthode en POO en JavaScript

Lors de l'utilisation du code source d'une méthode de classe, le contexte peut être perdu. Regardons un exemple. Supposons que nous ayons la classe suivante :

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

Créons un objet de cette classe :

let user = new User('john');

Enregistrons le code de la méthode dans une variable :

let func = user.getName;

C'est au moment de l'enregistrement de la méthode dans la variable que le contexte s'est perdu. Maintenant, this à l'intérieur du code de la méthode ne pointera pas vers l'objet de la classe. Vérifions, appelons notre fonction :

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

Pour résoudre le problème, on peut lier le contexte à la fonction, par exemple, via bind :

func = func.bind(user); console.log(func()); // fonctionne
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser