Skip to content

Latest commit

 

History

History
89 lines (63 loc) · 2.52 KB

File metadata and controls

89 lines (63 loc) · 2.52 KB

Function, Context & Variable Environments

1. Function (Funciones en JavaScript)

Definición:
Bloque de código reutilizable que se puede ejecutar cuando se invoque.

Características técnicas: Cuando se crea una función, JavaScript también crea un Function Object que incluye:

  • El código de la función
  • Su Lexical Environment (donde fue escrita)
  • Espacio para parámetros y variables
  • Referencia al Outer Environment

Concepto clave:
Una función = código + contexto donde fue creada


2. Execution Context (Contexto de Ejecución)

Definición:
Entorno en el que se ejecuta una función o el código global.

Proceso:
Cada vez que llamas a una función, JavaScript crea un nuevo Execution Context.

Componentes:

  1. Variable Environment (variables declaradas con var)
  2. Lexical Environment (variables let y const, funciones internas, closures)
  3. this binding

Tipos de Execution Context

Tipo Qué representa
Global Execution Context Todo el programa, una sola vez
Function Execution Context Cada vez que se ejecuta una función
Eval Execution Context Código dentro de eval() (poco usado)

3. Variable Environment

Definición:
Parte del Execution Context donde se guardan:

  • Variables declaradas con var
  • Parámetros de la función
  • El objeto arguments

Fase de Creación

El Variable Environment se crea durante la Creation Phase:

  1. Se invoca la función
  2. Se crea el Execution Context
  3. Se prepara el Variable Environment
  4. Todas las variables var se inicializan con undefined
  5. Viene la Execution Phase y el código se ejecuta línea por línea

Importante:

  • var es hoisted (subido con valor undefined)
  • let y const NO están en el Variable Environment, sino en el Lexical Environment

Ejemplo:

function test() {
  console.log(a); // undefined
  var a = 10;
}

En creación: var a = undefined
En ejecución: a = 10


Resumen

Concepto Función
Function Código + contexto donde fue creada
Execution Context Entorno temporal que se activa para ejecutar código
Variable Environment Almacena variables var, parámetros y arguments

Anterior tema: Function Invocation & The Execution Stack | Siguiente tema: The Scope Chain | Volver al índice: Índice Temático