DEV Community

Altencir Junior
Altencir Junior

Posted on

Explorando o keyword (this)

No decorrer da criação de um código, conseguimos criar muitas funções e arrays. Muitas vezes, temos a necessidade execução, para analisar o funcionamento do que estamos criando, seja numa tela de celular, seja num console pelo navegador. Com isso poderíamos decidir o que queremos analisar,talvez um objeto, mas como dizer exatamente aquele? Existem outros diversos no seu código! Para isso, existe o this.

Em JavaScript, o this é um pouco diferente em comparação com outras linguagens. Refere-se a um objeto, mas depende de como ou onde está sendo invocado. Ele também tem algumas diferenças entre o strict mode(caso queira saber mais a respeito do strict mode, pode analisar o artigo:https://dev.to/altencirsilvajr/o-que-e-use-strict-a-variante-independente-do-javascript-g32) e o modo padrão. Por exemplo:

Lista de formas que o this pode ser invocado:

  • Quando chamado dentro de um método, ele se refere a um objeto.
let user = {
  name: "John",
  age: 30,

  sayHi() {
    // "this" no objeto
    alert(this.name);
  }

};

user.sayHi(); // John´
Enter fullscreen mode Exit fullscreen mode
  • Sozinho, se refere a um objeto global. (em uma janela do navegador, o objeto global é o objeto window.

  • Em uma função, também a um objeto global. Exemplo:

function myFunction() {
  return this;
}
Enter fullscreen mode Exit fullscreen mode
  • No modo strict, ele é undefined

  • Em um event, se refere a um elemento que recebeu o this.

  • Em casos de métodos como: call(), apply() e bind() podem se referir a qualquer objeto.

É possível também usar o "bind", "call" ou "apply" para mudar o contexto de "this". O "bind" cria uma nova função com o "this" definido, enquanto "call" e "apply" chamam a função imediatamente com "this" definido. Por exemplo:

let pessoa = {nome: 'João'};
let exibirNome = function() {console.log(this.nome)}.bind(pessoa);
exibirNome(); // Exibe "João"

Enter fullscreen mode Exit fullscreen mode

Em resumo, "this" é uma palavra-chave importante no JavaScript, que se refere ao objeto que está sendo manipulado no momento, e sua referência pode variar dependendo do contexto. Aproveitando sua flexibilidade, é possível mudar seu contexto e evitar problemas de referência.

Top comments (0)