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. I- Up & Going
  2. 3- En YDKJS

3.1 Scope & Closures

Quizás una de las cosas más fundamentales que necesitará para llegar a un entendimiento rápido es cómo el scope de las variables realmente funcionan en JavaScript. No basta con tener creencias anecdóticas difusas sobre el scope.

El título Scope & Closures comienza por desacreditar la idea errónea común de que JS es un "lenguaje interpretado" y por lo tanto no se compila. Nope.

El motor JS compila su código justo antes (y a veces durante!) la ejecución. Así que buscamos una comprensión más profunda de la aproximación del compilador a nuestro código para entender cómo encuentra y trata las declaraciones de variables y funciones. A lo largo del camino, vemos la metáfora típica para la gestión del scope de variables en JS, "Hoisting".

Esta comprensión crítica del "alcance léxico" es en lo que entonces basamos nuestra exploración de los closures para el último capítulo del libro. Los closures son tal vez el concepto más importante en todos los de JS, pero si no ha comprendido con firmeza cómo funciona el scope, el closure probablemente permanecerá fuera de su alcance.

Una aplicación importante de closures es el patrón de module, como brevemente se introdujo en este libro en el capítulo 2. El patrón de módulo es quizás el patrón de organización de código más prevalente en todo el código JavaScript; La comprensión profunda de ella debe ser una de sus prioridades más altas.

Previous3- En YDKJSNext3.2 This & Object Prototypes

Last updated 6 years ago

Was this helpful?