⊗jsOpAdMCL 43 of 60 menu

Perda de contexto no código de método em POO em JavaScript

Ao usar o código original de um método de classe, o contexto pode ser perdido. Vamos ver um exemplo. Suponha que temos a seguinte classe:

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

Vamos criar um objeto desta classe:

let user = new User('john');

Vamos registrar o código do método em uma variável:

let func = user.getName;

No momento em que o método foi registrado na variável, o contexto foi perdido. Agora this dentro do código do método não irá apontar para o objeto da classe. Vamos verificar, vamos chamar nossa função:

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

Para resolver o problema, você pode vincular o contexto à função, por exemplo, através de bind:

func = func.bind(user); console.log(func()); // funciona
Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar