Médio JavaScript
Método que usa this
Enunciado
Crie um objeto calculadora com as propriedades a e b e um método somar que retorna a soma de a e b. Imprima o resultado.
Requisitos
- O objeto deve ter
a,be o métodosomar. - O método
somardeve usarthispara acessaraeb. - Imprima o retorno de
calculadora.somar().
Código inicial
// Crie o objeto calculadora
// Chame o método e imprima
Saída esperada
8
Ver dica
Dentro do método, use return this.a + this.b;.
Mostrar solução
// Objeto com propriedades e método
const calculadora = {
a: 5,
b: 3,
somar: function() {
return this.a + this.b; // this refere-se ao próprio objeto
}
};
// Chamando o método e imprimindo o resultado
console.log(calculadora.somar());
Passo a passo
- Declaramos
calculadoracom as propriedadesaeb. - Adicionamos a propriedade
somar, que é uma função. - Dentro da função,
this.aethis.bacessam as propriedades do objeto no momento da chamada. calculadora.somar()executa a função comthisapontando paracalculadora.- O retorno
5 + 3é impresso como8.
Por que funciona
Métodos são funções armazenadas como propriedades. Quando chamados com objeto.metodo(), o this dentro da função refere-se ao objeto à esquerda do ponto. Assim, this.a e this.b acessam os valores corretos.
Erros comuns
- Usar arrow function no método:
somar: () => this.a + this.b— arrow functions não têmthispróprio e herdam do escopo externo, resultando emundefinedou erro. - Esquecer de chamar com parênteses:
console.log(calculadora.somar)imprime a função, não o resultado.
Outra forma de resolver
Poderia usar a sintaxe abreviada de método:
const calculadora = {
a: 5,
b: 3,
somar() {
return this.a + this.b;
}
};
É mais concisa e equivalente.
Saída esperada
8