Pular para o conteúdo principal

This em JavaScript

Em JavaScript, a palavra this é usada para se referir ao objeto atual em que o código está sendo executado. O valor de this pode mudar dependendo de como uma função é chamada ou como um objeto é criado.

Ex de como o thispode ser usado em JavaScript:

  1. Referenciando o objeto atual em um método:

const obj = {
name: 'João',
greet() {
console.log(`Olá, meu nome é ${this.name}.`);
}
};

obj.greet(); // output: Olá, meu nome é João.

  1. Utilizando "this" em uma função construtora:

function Pessoa(name, age) {
this.name = name;
this.age = age;
}

const pessoa1 = new Pessoa('Maria', 25);
console.log(pessoa1.name); // output: Maria

  1. Utilizando "this" dentro de uma função anônima:

const obj = {
name: 'João',
greet() {
setTimeout(function() {
console.log(`Olá, meu nome é ${this.name}.`);
}, 1000);
}
};

obj.greet(); // output: Olá, meu nome é undefined.

No exemplo acima, a função anônima que é passada para função setTimeout não está vinculada ao objeto obj, portanto, o valor de this é underfined. Para resolver esse problema, podemos utilizar arrow functions ou bind() para de definir o valor de thisdentro da função.

Leia mais sobre this