Palavra-chave this em JavaScript
- Página Anterior Modo Estrito JS
- Próxima Página Funções de Seta JS
Exemplo
var person = { firstName: "Bill", lastName : "Gates", id : 678, fullName : function() { return this.firstName + " " + this.lastName; } };
O que é this?
JavaScript this
a palavra-chave refere-se ao objeto ao qual pertence.
ele tem diferentes valores dependendo de sua posição de uso:
- No método,
this
refere-se ao objeto proprietário. - No caso isolado,
this
refere-se ao objeto global. - Na função,
this
refere-se ao objeto global. - Na função, no modo estrito,
this
é undefined. - No evento,
this
refere-se ao elemento que recebe o evento.
como call()
e apply()
Esse método pode referenciar this para qualquer objeto.
this no método
No método do objeto,this
refere-se ao "proprietário" desse método.
No exemplo mais alto dessa página,this
refere-se ao objeto person.
o objeto person é o proprietário do método fullName.
fullName : function() { return this.firstName + " " + this.lastName; }
this isolado
No uso isolado, o proprietário é o objeto global, portanto this
refere-se ao objeto global.
No navegador da web, o objeto global é [object Window]
:
Exemplo
var x = this;
No modo estrito, se usado isoladamente, this
refere-se ao objeto global [object Window]
:
Exemplo
"use strict"; var x = this;
this na função (padrão)
No JavaScript, o proprietário da função é ligado por padrão this
。
portanto, em uma função,this
refere-se ao objeto global [object Window]
。
Exemplo
function myFunction() { return this; }
this na função (modo estrito)
O modo estrito do JavaScript não permite a ligação padrão.
portanto, ao usá-lo em uma função, no modo estrito,this
é indefinido (undefined
)。
Exemplo
"use strict"; function myFunction() { return this; }
this no gerenciador de eventos
No gerenciador de eventos HTML,this
refere-se ao elemento HTML que recebe esse evento:
Exemplo
<button onclick="this.style.display='none'"> clique para me deletar! </button>
ligação de método de objeto
Neste exemplo,this
é o objeto person (o objeto person é o "proprietário" dessa função):
Exemplo
var person = { firstName : "Bill", lastName : "Gates", id : 678, myFunction : function() { return this; } };
Exemplo
var person = { firstName: "Bill", lastName : "Gates", id : 678, fullName : function() { return this.firstName + " " + this.lastName; } };
Em outras palavras,this.firstName significa thisdo objeto firstName Propriedades.
Função de Ligação Explícita
call()
e apply()
Métodos são métodos JavaScript pré-definidos.
Ambos podem ser usados para chamar métodos de objetos com outro objeto como parâmetro.
pode ler mais sobre no final deste tutorial. call()
e apply()
mais informações.
no exemplo a seguir, ao usar person2 como parâmetro ao chamar person1.fullName,this
fará referência a person2, mesmo que seja um método de person1:
Exemplo
var person1 = { fullName: function() { return this.firstName + " " + this.lastName; } } var person2 = { firstName: "Bill", lastName: "Gates", } person1.fullName.call(person2); // Retornará "Bill Gates"
- Página Anterior Modo Estrito JS
- Próxima Página Funções de Seta JS