Javascript Avanzado en Español
  • Introducción
  • I- Up & Going
    • 0- Prefacio
    • 1- En la programación
      • 1.1 Código
      • 1.2 Inténtalo tú mismo
      • 1.3 Operadores
      • 1.4 Valores y Tipos
      • 1.5 Comentarios del Código
      • 1.6 Variables
      • 1.7 Bloques
      • 1.8 Condicionales
      • 1.9 Bucles
      • 1.10 Funciones
      • 1.11 Scope (Ámbito)
      • 1.12 Práctica
      • 1.13 - Revisión
    • 2- En Javascript
      • 2.1 Valores y Tipos
      • 2.2 Variables
      • 2.3 Condicionales
      • 2.4 Modo estricto
      • 2.5 Funciones como Valores
      • 2.6 Identificador This
      • 2.7 Prototypes
      • 2.8 Lo Viejo y Lo Nuevo
      • 2.9 Non-JavaScript
      • 2.10 Revisión
    • 3- En YDKJS
      • 3.1 Scope & Closures
      • 3.2 This & Object Prototypes
      • 3.3 Tipos & Gramática
      • 3.4 Async & Performance
      • 3.5 ES6 & Más allá
      • 3.6 Revisión
  • II- Scope & Closures
    • 0- Prefacio
    • 1- ¿Qué es el Scope?
      • 1.1 Teoría del Compilador
      • 1.2 Entendiendo el Scope
      • 1.3 Scopes Anidados
      • 1.4 Errores
      • 1.5 Revisión
    • 2- Lexical Scope
      • 2.1 Tiempo de Lex
      • 2.2 Trucos léxicos
      • 2.3 Revisión
    • 3- Function vs. Block Scope
      • 3.1 Ámbito de las funciones
      • 3.2 Ocultación en el ámbito común
      • 3.3 Funciones como ámbitos
      • 3.4 Bloques como ámbitos
      • 3.5 Revisión (TL; DR)
    • 4- Hoisting
      • 4.1 ¿El Huevo o la Gallina?
      • 4.2 El compilador pega de nuevo
      • 4.3 Funciones Primero
      • 4.4 Revisión
    • 5- Scope Closure
      • 5.1 Ilustración
      • 5.2 Nitty Gritty
      • 5.3 Ahora puedo ver
      • 5.4 Loops + Closure
      • 5.5 Módulos
      • 5.6 Revisión
    • 6- Scope Dinámico
    • 7- Ámbito de bloque de Polyfilling
      • 7.1 Traceur
      • 7.2 Bloques implícitos vs. explícitos
      • 7.3 Rendimiento
    • 8- Lexical-this
  • III- this & Object Prototypes
    • 0- Prefacio
    • 1- this o That?
      • 1.1 ¿Porque this?
      • 1.2 Confusiones
      • 1.3 ¿Que es this?
      • 1.4 Revisión
    • 2- this, todo tiene sentido ahora!
      • 2.1 Sitio de llamada
      • 2.2 Nada más que reglas
      • 2.3 Todo en orden
Powered by GitBook
On this page

Was this helpful?

  1. II- Scope & Closures
  2. 5- Scope Closure

5.1 Ilustración

Para aquellos que tienen algo de experiencia en JavaScript, pero quizás nunca han comprendido completamente el concepto de closures, entender el closure puede parecer un nirvana especial que uno debe esforzarse y sacrificarse por alcanzar.

Recuerdo años atrás cuando tenía una comprensión firme de JavaScript, pero no tenía idea de qué era closures. La indirecta de que había ese otro lado del lenguaje, que me prometió aún más capacidad de la que ya poseía, me burlaba y me burlaba. Recuerdo leer a través del código fuente de los primeros frameworks tratando de entender cómo funciona realmente. Recuerdo la primera vez que algo del "patrón de módulo" comenzó a emerger en mi mente. ¡Recuerdo el a-ha! Momentos muy vívidos.

Lo que no sabía en ese entonces, lo que me llevó años entender, y lo que espero poder impartir, es el secreto: el closure está en todas partes de JavaScript, sólo hay que reconocerlo y abrazarlo. Closures no son una herramienta especial de opt-in que usted debe aprender nuevas sintaxis y patrones. No, los closures no son ni siquiera un arma que debes aprender a manejar y dominar como Luke entrenó en La Fuerza.

Los closures ocurren como resultado de escribir código que se basa en el alcance léxico. Simplemente suceden. Usted ni siquiera tiene que intencionalmente crear closures para tomar ventaja de ellos. Los closures se crean y se usan para usted en todo su código. Lo que le falta es el contexto mental apropiado para reconocer, abrazar y apalancar los closures por su propia voluntad.

El momento de la iluminación debe ser: oh, closures ya están apareciendo en todo mi código, finalmente puedo verlos ahora. Entender los closures es como cuando Neo ve la Matrix por primera vez.

Previous5- Scope ClosureNext5.2 Nitty Gritty

Last updated 6 years ago

Was this helpful?