Comprender el uso de alcance y cierre en JS (Parte 1) (definición básica)

prefacio

¿Qué es el alcance? ¿Qué es un cierre? Estas son preguntas comunes en las entrevistas iniciales.Hoy, resumiré el contenido de alcance y cierre.

Alcance y variables libres

Alcance:
El alcance puede entenderse como el alcance legal de uso de una variable. Para la función como se muestra en la figura a continuación, le agregué capas de cuadros rojos. Las variables definidas en cada capa tienen su propio alcance de uso.

inserte la descripción de la imagen aquí
Hay tres alcances:

  1. Alcance global
    Escriba una variable directamente en el código, la variable no está restringida y se puede usar globalmente
  2. Alcance de la función
    Las variables definidas en una función solo se pueden usar en la función
  3. Ámbito de nivel de bloque (nuevo en ES6)
    inserte la descripción de la imagen aquí
    La variable x definida en if (true) solo se puede usar en el interior, y se informará un error en el exterior

variable libre:

  • Una variable no está definida en el ámbito actual, pero se utiliza
  • Al alcance superior, busque capa por capa hasta encontrar
  • Si no se encuentra en el alcance global, se informará un error xx no está definido

Cierre

El caso especial de aplicación con ámbito tiene dos manifestaciones:

  1. la función se pasa como parámetro
  2. La función se devuelve como el valor de retorno.

Veamos dos ejemplos:

inserte la descripción de la imagen aquí

La respuesta es imprimir 100
y luego mirar lo siguiente: el
inserte la descripción de la imagen aquí
valor impreso sigue siendo 100.

La ejecución de la función en la Figura 1 está en el ámbito global y a=200 también está en el ámbito global. Todo en la función de creación está en el alcance de la función, por lo que imprimir a para buscar el alcance de nivel superior es a = 100

Por el mismo motivo de la Figura 2, imprima a en la función fn y busque el ámbito superior, es decir, a=100

Resumen:
Cierre: La búsqueda de variables libres es donde se define la función, y se busca el ámbito superior,
no donde se ejecuta!!!

asignación de este

Uso de esto:

  1. como una función normal
  2. usar llamar aplicar vincular
  3. se llama como un método de objeto
  4. llamada en el método de clase
  5. función de flecha

El valor de this se confirma cuando se ejecuta la función, no cuando se define.
Mire los siguientes ejemplos. El uso de este El
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
ejemplo anterior es relativamente simple. Con comentarios, debería poder comprender los seis casos de uso de este .

finalmente

Este artículo le presenta los conceptos básicos de alcance y cierre, y también presenta varios escenarios de uso de esto. El próximo artículo comenzará con algunas preguntas de entrevistas reales para comprender mejor el uso de alcance y cierre ~

Supongo que te gusta

Origin blog.csdn.net/weixin_45745641/article/details/123829172
Recomendado
Clasificación