Esta es una palabra clave importante en el lenguaje orientado al objeto. Esto es diferente del lenguaje orientado al objetivo, como Java y C#, lo que hace que esto sea más confuso y confuso.
Lo que esto usa:
1. Función pura
2. Llamada de método de objeto
3. Use nuevo para llamar al constructor
4. Funciones internas
5. Use la llamada / aplicar
6. Enlace de eventos
1. Función pura
Copiar código del código de la siguiente manera:
var name = 'this Is Window';
función getName () {
console.log (this);
console.log (this.name);
}
getName ();
Análisis de resultados de ejecución: esto en funciones puras apunta a objetos globales, ventana.
2. Llamada de método de objeto
Copiar código del código de la siguiente manera:
var name = 'this Is Window';
var testObj = {
Nombre: 'Esto es testobj',
getName: function () {
console.log (esto);
console.log (this.name);
}
}
testobj.getName ();
Ejecutar el análisis de resultados: esto se apunta al objeto que llama al método.
3. Use nuevo para llamar al constructor
Copiar código del código de la siguiente manera:
función getObj () {
console.log (esto);
}
nuevo getobj ();
Análisis de resultados de ejecución: esto en el nuevo constructor apunta al objeto recién generado.
4. Funciones internas
Copiar código del código de la siguiente manera:
var name = "this Is Window"; / Defina el atributo de nombre de
var testObj = {
Nombre: "Esto es testobj",
getName: function () {
// var seelf = this;// Guarde temporalmente este objeto
var aHandle = function () {{)
console.log (this);
console.log (this.name);
//console.log (set);
}
manejar ();
}
}
testobj.getName ();
Ejecutar el análisis de resultados: esto en la función interna todavía apunta al objeto global, ventana. Generalmente se considera un error de diseño en el lenguaje JavaScript, porque nadie quiere señalar esto en la función interna al objeto global. El método de procesamiento general es guardar esto como una variable, y generalmente se acuerda ser eso o yo, como se muestra en el código anterior.
5. Use la llamada / aplicar
Copiar código del código de la siguiente manera:
var name = 'this Is Window';
var testObj1 = {
Nombre: 'Esto es testobj1',
getName: function () {
console.log (this);
console.log (this.name);
}
}
var testObj2 = {
Nombre: 'Este es testobj2'
}
testobj1.getName.apply (testObj2);
testobj1.getName.call (testObj2);
Nota: Aplicar y llamar son similares, pero los segundos parámetros de los dos son diferentes:
[1] Llame (ThatesArg [, Arg1, Arg2, ...]);
[2] Aplicar (thatesArg [, argArray]);
Análisis de resultados en ejecución: esto usa esto en la función de llamada / aplicar para apuntar al objeto de enlace.
6. Enlace de eventos
Este método en el método del evento debe ser el lugar más sospechoso, la mayoría de los errores se originaron a partir de esto.
Copiar código del código de la siguiente manera:
// página para vincular en el elemento
<script type = "text/javaScript">
función btClick () {
console.log (this);
}
</script>
<Body>
<botón id = "btn" onClick = "btClick ();"> haga clic en </botón>
</body>
Copiar código del código de la siguiente manera:
// Método de enlace JS (1)
<Body>
<botón id = "btn"> haga clic en </botón>
</body>
<script type = "text/javaScript">
función btClick () {
console.log (este);
}
document.getElementById ("BTN").
document.getElementById ("BTN").
</script>
Copiar código del código de la siguiente manera:
// Método de enlace JS (2)
<Body>
<botón id = "btn"> haga clic en </botón>
</body>
<script type = "text/javaScript">
document.getElementById ("BTN").
console.log (este);
}
document.getElementById ("BTN").
</script>
Copiar código del código de la siguiente manera:
// Método de enlace JS (3)
<Body>
<botón id = "btn"> haga clic en </botón>
</body>
<script type = "text/javaScript">
función btClick () {
console.log (esto);
}
document.getElementById ("BTN"). Método (Método (Método) Cuando se usa en el manejo de eventos.
document.getElementById ("BTN").
</script>
Análisis de los resultados de ejecución: los dos métodos de unión de eventos comunes anteriores, vinculación del evento en el elemento de página Además del método de evento de enlace, esto apunta al elemento elment del evento de unión.