Hagamos algunos de los conceptos iniciales más difíciles en JavaScript (la relación entre esto y el alcance, y qué cierre hace) el más simple.
El alcance es simple; lo usas para dar sentido a cada conversación que tienes. Una vez que lo entiendes, el concepto de cierre es aún más simple.
En los idiomas humanos, tenemos ‘nosotros’, ‘usted’ ‘él’, ‘ella’, etc., como el sujeto implícito. En JavaScript, es mucho más fácil; solo tenemos uno y lo llamamos ‘esto’.
- Para convertirme en un buen desarrollador web, ¿qué lenguajes de programación necesito aprender (y en qué orden)?
- ¿Cuál es el mejor enfoque de ux para construir un excelente sitio web?
- Cómo hacer que la imagen 1 desaparezca y la imagen 2 aparezca al hacer clic con el mouse momentáneamente con css
- ¿Debo aprender Angular 2 antes de aprender Ionic 2?
- ¿Cuánto costará un buen blog / sitio web en Pakistán?
Entonces en inglés, cuando dices
John es un gran nadador. Ha ganado muchas medallas por ello.
JavaScript es él. El alcance es lo que te dice que John y Él son referencias a lo mismo. Scope mantiene el contexto de ‘estamos hablando de John cuando decimos que Él ‘.
Supongamos que usted y un amigo estaban caminando y hablando de John, pero luego un conductor de automóvil se distrajo y le pidió instrucciones, y luego cambió a discutir las instrucciones antes de darle una respuesta al conductor. Después de que el conductor se vaya, tu amigo podría decir ‘Entonces, ¿cuántas medallas ganó por nadar?’.
Puede reanudar esta conversación y aún saber que él y John son iguales debido a lo mismo que el cierre en JavaScript. El contexto dentro del cual se está discutiendo la conversación sobre John aún no se ha cerrado. De hecho, incluso podría decir ‘él sabría las instrucciones porque la piscina está encendida está en la ruta’, y tanto usted como su amigo sabrían que estaban hablando de John.
El cierre es el acto de mantener un alcance (contexto de conversación) después de que la conversación ha cambiado a otro contexto anidado ; “No hemos cerrado la conversación sobre John y podemos volver a él” .
Cada vez que vea esto en un guión, piense en ello como una discusión sobre John, donde se ha movido de decir John y en su lugar lo está usando .
Si escribe un controlador de eventos para un objeto John, entonces esto dentro del controlador es como él en una conversación asumiendo que John es el sujeto.
Cada vez que vea una función definida dentro de otra función, piense en la función externa como una conversación que mantiene el contexto de la conversación mientras se ejecuta la conversación interna (función).