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, b e o método somar.
  • O método somar deve usar this para acessar a e b.
  • 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

  1. Declaramos calculadora com as propriedades a e b.
  2. Adicionamos a propriedade somar, que é uma função.
  3. Dentro da função, this.a e this.b acessam as propriedades do objeto no momento da chamada.
  4. calculadora.somar() executa a função com this apontando para calculadora.
  5. O retorno 5 + 3 é impresso como 8.

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êm this próprio e herdam do escopo externo, resultando em undefined ou 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