⊗jsOpAdMCL 43 of 60 menu

Pérdida de contexto en el código de un método en POO en JavaScript

Al usar el código fuente de un método de clase, el contexto puede perderse. Veamos un ejemplo. Supongamos que tenemos la siguiente clase:

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

Creemos un objeto de esta clase:

let user = new User('john');

Escribamos el código del método en una variable:

let func = user.getName;

En el momento de escribir el método en la variable, el contexto se perdió. Ahora this dentro del código del método no apuntará al objeto de la clase. Comprobemos, llamemos a nuestra función:

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

Para resolver el problema, se puede vincular el contexto a la función, por ejemplo, a través de bind:

func = func.bind(user); console.log(func()); // funciona
Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar