Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 9340|Respuesta: 0

[JavaScript] Esta explicación detallada de Javascript

[Copiar enlace]
Publicado en 28/9/2020 19:04:30 | | | |
En primer lugar, hay que decir que el sentido de esto no puede determinarse cuando se define la función, solo cuando se ejecuta la función se puede determinar a quién apunta; de hecho, el punto final de esto es el objeto que la llama (hay algunos problemas con esta frase, y se explicará más adelante por qué hay un problema, aunque la mayoría de los artículos en Internet lo dicen, aunque en muchos casos no habrá problema con esa comprensión, pero en realidad esa comprensión es inexacta, Así que cuando entiendas esto, sentirás incomprensión), así que exploraré este tema en profundidad.

La prueba es la siguiente:




Esto tiene valores diferentes para distintos propósitos de funciones. En general, este es el objeto de entorno en el que se ejecuta la función. El uso de esto se discute en detalle en cuatro situaciones.

Caso 1: Llamadas a funciones puras

Este es el uso más común de una función, y es una llamada global, por lo que representa un objeto global. Mira el código de abajo, funciona con un resultado de 1.


Caso 2: Llamada como método objeto

La función también puede llamarse método de un objeto, en cuyo caso se refiere al objeto padre.


Caso 3 Llamada como constructor

El llamado constructor es que, a través de esta función, se puede generar un nuevo objeto. En este punto, esto se refiere a este nuevo objeto.


El resultado de la carrera es 1. Para demostrar que este no es un objeto global en este momento, hacemos algunos cambios en el código:



El resultado de la ejecución es 2, lo que indica que el valor de la variable global x no ha cambiado en absoluto.

Caso 4 aplicar llamada

apply() es un método de una función que cambia el objeto que llama la función. Su primer parámetro representa el objeto modificado que llama a la función. Por lo tanto, esto se refiere a este primer parámetro.


Cuando el parámetro apply() está vacío, el objeto global se llama por defecto. Por lo tanto, el resultado de la secuencia es 0, demostrando que esto se refiere al objeto global.

Si cambias la última línea de código a


El resultado secuencia se convierte en 1, demostrando que esto representa el objeto obj.

(Fin)


Referencia:

El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.





Anterior:[Combate real] ASP.NET Core está basado en la venta flash de candados distribuidos de Redis
Próximo:La diferencia entre un parche de descanso y una solicitud de put
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com