Essa é uma palavra -chave importante na linguagem orientada ao objeto. O JavaScript é diferente da linguagem orientada para objetivos, como Java e C#, o que torna isso mais confuso e confuso.
O que isso usa:
1. Função pura
2. Chamada de método de objeto
3. Use novo para chamar o construtor
4. Funções internas
5. Use Chamada / Aplicar
6. Ligação de eventos
1. Função pura
Copie o código do código da seguinte forma:
Var Nome = 'Esta é a janela';
function getName () {
console.log (this);
console.log (this.name);
}
getName ();
Análise dos resultados em execução: isso nas funções puras aponta para objetos globais, janela.
2. Chamada de método de objeto
Copie o código do código da seguinte forma:
var name = 'Esta é a janela';
var testObj = {
Nome: 'This is testObj',
getName: function () {
console.log (this);
console.log (this.name);
}
}
testObj.getName ();
Executar análise de resultados: isso é apontado para o objeto que chama o método.
3. Use novo para chamar o construtor
Copie o código do código da seguinte forma:
function getObj () {
console.log (this);
}
new getObj ();
Executar análise de resultados: isso no novo construtor aponta para o objeto recém -gerado.
4. Funções internas
Copie o código do código da seguinte forma:
var name = "Esta é a janela";
var testObj = {
Nome: "This Is testObj",
getName: function () {
// var seelf = this;
var aHandle = function () {{)
console.log (this);
console.log (this.name);
//console.log (set);
}
lidar ();
}
}
testObj.getName ();
Executar análise de resultados: isso na função interna ainda aponta para o objeto global, janela. Geralmente, é considerado um erro de design na linguagem JavaScript, porque ninguém quer apontar isso na função interna para o objeto global. O método de processamento geral é salvá -lo como uma variável e geralmente é acordado para ser esse ou eu, como mostrado no código acima.
5. Use Chamada / Aplicar
Copie o código do código da seguinte forma:
var name = 'Esta é a janela';
var testObj1 = {
Nome: 'This is testObj1',
getName: function () {
console.log (this);
console.log (this.name);
}
}
var testObj2 = {
Nome: 'Isso é testObj2'
}
testObj1.getName.Apply (testObj2);
testObj1.getName.Call (testObj2);
Nota: Aplicar e a chamada são semelhantes, mas os segundos parâmetros dos dois são diferentes:
[1] Chamada (thisarg [, arg1, arg2, ...]);
[2] Aplicar (thisArg [, Argarray]);
Análise dos resultados em execução: isso usa isso na função de chamada / aplicação para apontar para o objeto de ligação.
6. Ligação de eventos
Esse método no método de eventos deve ser o local mais suspeito, a maioria dos erros se originou disso.
Copie o código do código da seguinte forma:
// página para encadernação no elemento
<script type = "text/javascript">
função btclick () {
console.log (this);
}
</script>
<Body>
<button id = "btn" onclick = "btclick ();"> clique em </butut>
</body>
Copie o código do código da seguinte forma:
// Método de ligação JS (1)
<Body>
<botão id = "btn"> clique em </butut>
</body>
<script type = "text/javascript">
função btclick () {
console.log (this);
}
Document.getElementById ("BTN").
Document.getElementById ("BTN").
</script>
Copie o código do código da seguinte forma:
// Método de ligação JS (2)
<Body>
<botão id = "btn"> clique em </butut>
</body>
<script type = "text/javascript">
Document.getElementById ("BTN").
console.log (this);
}
Document.getElementById ("BTN").
</script>
Copie o código do código da seguinte forma:
// Método de ligação JS (3)
<Body>
<botão id = "btn"> clique em </butut>
</body>
<script type = "text/javascript">
função btclick () {
console.log (this);
}
Document.getElementById ("BTN"). Método (método (método) quando é usado no manuseio de eventos.
Document.getElementById ("BTN").
</script>
Análise dos resultados em execução: Os dois métodos de ligação de eventos comuns acima, ligação de eventos no elemento da página Além do método do evento de ligação, isso aponta para o elemento de elemento do evento de ligação.