DEV Community

Cover image for JavaScript: Um pouco sobre o This
Cristian Magalhães
Cristian Magalhães

Posted on • Edited on

1

JavaScript: Um pouco sobre o This

Eae gente bonita, beleza?

Dessa vez venho falar um pouco sobre a palavra-chave this no JavaScript. Ela é comum em diversas linguagens, porém ela pode ser um pouco confusa no JS e aqui vou te explicar o porquê.

Como funciona o this?

Antes de tudo é importante nós entendermos como o this funciona normalmente.

O this é uma palavra-chave para se referir aos membros de uma classe (métodos e propriedades). E é usado em outras linguagens de programação como o Java, por exemplo.

Exemplo de uso do this em java


class Pessoa {
  String nome;
  int idade;
  public Pessoa(String nome, int idade) {
    this.nome = nome;
    this.idade = idade;
  }

  int getIdade() {
    return this.idade;
  }


  String getNome() {
    return this.nome;
  }

  public void falarNome() {
    System.out.println("Meu nome é: "+ this.getNome());
  }

  public void falarNomeEIdade() {
    System.out.println("Meu nome é: "+ this.getNome()+ " e tenho "+ this.idade+ " anos...");
  }
}

class Main {
  public static void main(String[] args) {
    Pessoa p1 = new Pessoa("Cristian", 24);
    p1.falarNome();
    p1.falarNomeEIdade();
  }
}
Enter fullscreen mode Exit fullscreen mode

Nesse exemplo o this é usado para referenciar as propriedades nome e idade e também os métodos falarNome e falarNomeEIdade, ou seja, tudo que está no escopo da classe (guarde isso, ok?).

O problema no JS

No JavaScript temos dois tipos de funções, certo? As declaradas com a palavra-chave function e as arrows function () => {}. É importante você saber aqui que as arrow functions não tem um escopo próprio, então quando você usa o this você acaba pegando as propriedades e métodos do escopo anterior. Então é importante você sempre se atentar nos momentos que você vai usar o this.

Também existe o tema contexto por trás do this no JS, em breve venho aqui e explico para vocês.

Se chegou até aqui, me segue la nas redes vizinhas.

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

AWS GenAI LIVE!

GenAI LIVE! is a dynamic live-streamed show exploring how AWS and our partners are helping organizations unlock real value with generative AI.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️