Necesitas leer condicionales y ciclos sencillos; aquí aprenderás a separar responsabilidades mediante funciones.
Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.
Ubícate antes de avanzar
Al terminar deberías poder relacionar Funciones y contratos con Scope y closures y resolver un caso nuevo.
Reserva entre 35 y 55 minutos para lectura, ejemplos, tres comprobaciones y cierre.
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.
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.
- 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
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.
Una responsabilidad facilita nombrar y probar.
Evita modificar argumentos sin anunciarlo.
Documenta unidades, ausencia y errores.
¿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.
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.
let y const tienen alcance de bloque.
Cada llamada puede crear un entorno independiente.
La referencia capturada observa el valor actual de ese enlace.
¿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.
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.
No elijas flecha solo por ser más corta.
Evita depender de this cuando un parámetro es más claro.
bind no ejecuta: devuelve otra función.
¿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.
Tu recorrido en tres ideas
- 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
Comprueba que puedes usarlo
Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.
Mezclar cálculo, consola, DOM y red en una sola función.
Usar una arrow como método esperando que reciba el this del objeto.
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 +
- Cada función tiene contrato y resultado consistente.
- Las pruebas no requieren navegador.
- Dos generadores mantienen estados independientes.
