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´
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;
}
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"
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)