Article image
Aricelio Moura
Aricelio Moura31/03/2024 12:05
Compartilhe

Domine o "this" em JavaScript com a inteligência artificial Gemini e o guia definitivo!

  • #JavaScript
  • #Inteligência Artificial (IA)

Neste artigo, desvendaremos os mistérios do "this" com a ajuda da inteligência artificial Gemini e do livro "JavaScript: O Guia Definitivo".

O que é o "this"?

O "this" é uma palavra-chave especial que se refere ao objeto no qual o código está sendo executado. Imagine-o como um ponteiro que muda de acordo com o contexto.

Como usar o "this"?

* Em métodos de objetos: "this" referencia o próprio objeto.

* Em funções independentes: "this" referencia o objeto global "window".

* Com bind, apply e call: defina explicitamente o valor de "this".

Em JavaScript, "this" é uma palavra-chave especial que se refere ao objeto no qual o código está sendo executado no momento. Ou seja, "this" é um ponteiro para o objeto atual.

Como "this" funciona?

O valor de "this" muda dependendo de como a função é chamada. Aqui estão alguns exemplos:

1. Função como método de um objeto:

const pessoa = {
 nome: "João",
 apresentar() {
console.log(`Meu nome é ${this.nome}.`); // this === pessoa
 },
};

pessoa.apresentar(); // "Meu nome é João."

Neste caso, "this" dentro da função apresentar() se refere ao objeto pessoa, pois a função é chamada como um método de pessoa.

2. Função independente:

function saudacao() {
 console.log(`Olá, ${this.nome}!`); // this === window
}

saudacao(); // "Olá, undefined!"

Neste caso, "this" dentro da função saudacao() se refere ao objeto global window, pois a função é chamada independentemente de qualquer objeto.

3. Usando bind, apply e call:

const pessoa = {
 nome: "João",
 apresentar() {
console.log(`Meu nome é ${this.nome}.`);
 },
};

const saudacao = function() {
 console.log(`Olá, ${this.nome}!`);
};

// Vinculando "this" à pessoa
saudacao.bind(pessoa)(); // "Olá, João!"

// Aplicando "this" à pessoa
saudacao.apply(pessoa); // "Olá, João!"

// Chamando "this" com "pessoa" como o primeiro argumento
saudacao.call(pessoa); // "Olá, João!"

Os métodos bind, apply e call permitem que você defina explicitamente o valor de "this" dentro de uma função.

Quando usar "this"?

  • Para acessar propriedades e métodos do objeto atual:
const pessoa = {
 nome: "João",
 apresentar() {
console.log(`Meu nome é ${this.nome}.`);
 },
};

pessoa.apresentar(); // "Meu nome é João."
  • Para evitar ambiguidade no código:
const pessoa = {
 nome: "João",
 apresentar() {
const nome = "Maria"; // Variável local
console.log(`Meu nome é ${this.nome}.`); // "Meu nome é João."
 },
};

pessoa.apresentar();
  • Para escrever código mais modular e reutilizável:
function apresentar(nome) {
 console.log(`Meu nome é ${this.nome} ${nome}.`);
}

const pessoa1 = {
 nome: "João",
};

const pessoa2 = {
 nome: "Maria",
};

apresentar.call(pessoa1, "Silva"); // "Meu nome é João Silva."
apresentar.call(pessoa2, "Oliveira"); // "Meu nome é Maria Oliveira."
Recurso para aprender mais sobre "this": JavaScript: The Definitive Guide - David Flanagan
Compartilhe
Comentários (1)
Francis Basselar
Francis Basselar - 31/03/2024 13:38

v ç c c to c cc xçcçz ć. , scx