⊗jsOpAdMCL 43 of 60 menu

Pierderea contextului în codul metodei în OOP în JavaScript

Atunci când se folosește codul sursă al unei metode de clasă, contextul poate fi pierdut. Să ne uităm la un exemplu. Să presupunem că avem următoarea clasă:

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

Să creăm un obiect al acestei clase:

let user = new User('john');

Să înregistrăm codul metodei într-o variabilă:

let func = user.getName;

În momentul înregistrării metodei în variabilă, contextul s-a pierdut. Acum this în interiorul codului metodei nu va indica către obiectul clasei. Să verificăm, să apelăm funcția noastră:

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

Pentru a rezolva problema, putem lega contextul la funcție, de exemplu, prin bind:

func = func.bind(user); console.log(func()); // funcționează
Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge