Objetos com comportamento
Um objeto agrupa dados (propriedades) e comportamento (métodos). Um método é simplesmente uma função guardada como propriedade:
const conta = {
saldo: 100,
depositar(quantia) {
this.saldo += quantia;
},
};
conta.depositar(50);
console.log(conta.saldo); // 150
A palavra-chave this
Dentro de um método, this se refere ao objeto sobre o qual o método foi
chamado. Por isso this.saldo acessa o saldo desse objeto específico.
this é dinâmico: seu valor depende de como a função é chamada, não de
onde ela foi definida. Quando você chama conta.depositar(50), this é conta.
As funções de seta não têm seu próprio
this: elas herdam o do contexto que as envolve. Por isso, para métodos de objeto costuma-se preferir a sintaxemetodo() { ... }.
Exemplos
Um objeto com método e this
const contador = {
valor: 0,
incrementar() {
this.valor++;
return this.valor;
},
};
console.log(contador.incrementar());
console.log(contador.incrementar());