JavaScript · Sección 4

Funciones, alcance, closures y this

Funciones como valores, parámetros, retorno, alcance léxico, cierres y reglas de this explicadas mediante estados y dependencias visibles.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Necesitas leer condicionales y ciclos sencillos; aquí aprenderás a separar responsabilidades mediante funciones.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Funciones y contratos con Scope y closures y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 35 y 55 minutos para lectura, ejemplos, tres comprobaciones y cierre.

04 / PREPARA EL LABORATORIO

Utiliza un navegador con herramientas de desarrollo y una versión LTS de Node.js con npm. Angular y MongoDB se preparan cuando llegues a esos bloques.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Funciones y contratos y Scope y closures? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Usarás funciones como valores, comprenderás alcance, cierres y this, y separarás cálculo puro de efectos.

Al terminar podrás
  • Una función pequeña transforma entradas en una salida clara
  • Un closure recuerda el entorno donde nació
  • Las flechas heredan this; los métodos reciben un contexto de llamada
01
Contratos

Una función pequeña transforma entradas en una salida clara

Una función debe tener nombre o contexto que comunique intención, validar lo que su contrato exige y devolver un resultado consistente. Separar cálculo de consola, DOM o red facilita pruebas y reutilización. Los parámetros por defecto solo se aplican a undefined.

01

Una responsabilidad facilita nombrar y probar.

02

Evita modificar argumentos sin anunciarlo.

03

Documenta unidades, ausencia y errores.

Comprueba lo aprendido · 01

¿Qué ventaja tiene devolver el total en vez de imprimirlo dentro de la función?

Mostrar respuesta +

El resultado puede probarse, formatearse o reutilizarse en distintos entornos sin capturar la consola ni modificar el DOM.

02
Alcance y cierre

Un closure recuerda el entorno donde nació

El alcance léxico se decide por la ubicación del código. Una función interna puede conservar referencias a variables externas incluso después de que la función exterior termine. Ese cierre permite estado privado y callbacks, pero también puede retener memoria o datos antiguos si vive más de lo esperado.

01

let y const tienen alcance de bloque.

02

Cada llamada puede crear un entorno independiente.

03

La referencia capturada observa el valor actual de ese enlace.

Comprueba lo aprendido · 02

¿Por qué valor sigue existiendo después de que crearContador terminó?

Mostrar respuesta +

Porque la función retornada forma un closure y mantiene una referencia al entorno léxico que contiene valor.

03
Funciones y this

Las flechas heredan this; los métodos reciben un contexto de llamada

Las arrow functions no crean su propio this ni arguments. Un método tradicional obtiene this según cómo se invoca; al separarlo del objeto puede perder ese contexto. bind crea una función con this fijado. Para callbacks que no requieren contexto, una flecha suele ser más simple.

01

No elijas flecha solo por ser más corta.

02

Evita depender de this cuando un parámetro es más claro.

03

bind no ejecuta: devuelve otra función.

Comprueba lo aprendido · 03

¿Por qué una arrow function no sirve como método cuando necesitas this del objeto receptor?

Mostrar respuesta +

Porque captura this del alcance exterior y no recibe el objeto según la forma de llamada. Un método tradicional sí puede usar ese contexto.

Resumen de la sección

Tu recorrido en tres ideas

  1. Una función pequeña transforma entradas en una salida clara
  2. Un closure recuerda el entorno donde nació
  3. Las flechas heredan this; los métodos reciben un contexto de llamada
CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Mezclar cálculo, consola, DOM y red en una sola función.

ERROR 02

Usar una arrow como método esperando que reciba el this del objeto.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Diseña un carrito con funciones puras para subtotal y descuento, más un closure que genere identificadores consecutivos.

Mostrar pauta de corrección +
Una respuesta sólida:
  • Cada función tiene contrato y resultado consistente.
  • Las pruebas no requieren navegador.
  • Dos generadores mantienen estados independientes.