Directorio de artículos
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.
Hay tres alcances:
- Alcance global
Escriba una variable directamente en el código, la variable no está restringida y se puede usar globalmente - Alcance de la función
Las variables definidas en una función solo se pueden usar en la función - Ámbito de nivel de bloque (nuevo en ES6)
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:
- la función se pasa como parámetro
- La función se devuelve como el valor de retorno.
Veamos dos ejemplos:
La respuesta es imprimir 100
y luego mirar lo siguiente: el
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:
- como una función normal
- usar llamar aplicar vincular
- se llama como un método de objeto
- llamada en el método de clase
- 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
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 ~