JavaScriptObjetosbasico

this no objeto

Quando você cria um objeto com dados próprios, como um perfil de usuário, precisa de métodos que acessem esses dados. É aí que entra o this: ele permite que um método saiba qual objeto o chamou, funcionando como um 'auto-referência'. Sem this, você teria que passar o objeto como parâmetro toda vez, o que é bem menos prático.

O PROBLEMA

Crie objeto pessoa com nome, sobrenome e método nomeCompleto() que usa this.

EXEMPLO

const pessoa = {nome:"Ana", sobrenome:"Silva", nomeCompleto() { return `${this.nome} ${this.sobrenome}` }};
pessoa.nomeCompleto() → "Ana Silva"

SOBRE O CONCEITO

No código, this dentro de um método tradicional (como nomeCompleto() { ... }) aponta para o objeto que invocou o método. No exemplo, this.nome acessa a propriedade nome do objeto pessoa. O erro comum é usar arrow function no método, ex.: nomeCompleto: () => .... Arrow functions não têm seu próprio this; elas herdam o this do escopo onde foram definidas (geralmente o escopo global ou de uma função pai). Assim, this.nome ficaria undefined ou apontaria para window (no navegador), gerando um resultado incorreto. Por isso, é proibido usar arrow function aqui; prefira a sintaxe de método abreviada ou function.

RESOLUÇÃO

Mais exercícios de Objetos

JSO011 · IntermediárioFactory functionJSO001 · BásicoCriar objeto simplesJSO003 · BásicoMétodo no objetoJSO006 · BásicoDesestruturação de objeto
Ver todos os exercícios de JavaScript