Domina los prerrequisitos de JavaScript que evalúa Snap con un enfoque práctico. Aquí verás cómo abordar el Task 9.x trabajando con objetos y funciones, y qué estudiar en Mozilla Developer Network para comprender closures, hoisting, el prototipo y export. Con una guía directa, sabrás en qué enfocarte y cómo validar tu solución en Node.
¿Qué exige el dominio de JavaScript en Snap?
Este dominio no es solo Node: requiere bases sólidas del lenguaje JavaScript. Debes resolver dos ejercicios, Task 9.1 y Task 9.2, centrados en conocimientos generales y lógica. Pueden ser más extensos de lo habitual, así que conviene practicar la lectura cuidadosa de consignas y la validación local.
- Entiende y practica closures y hoisting.
- Domina múltiples formas de crear objetos y controlar el prototipo.
- Refuerza la fundamentación de funciones y sus métodos.
- Conoce las formas de trabajar con export.
- Prioriza claridad y pruebas locales sin dejar código extra.
¿Cómo se resuelve el Task 9.x con objetos y funciones?
La consigna indica modificar la función answer en el archivo answer.js para que reciba un parámetro operation (de tipo función) y retorne un objeto con dos propiedades: name (cadena con cualquier contenido) y result (método que ejecuta la función recibida).
¿Qué pide la consigna del Task 9.x?
- Recibir un parámetro: operation, de tipo función.
- Retornar un objeto con:
- name: string con cualquier contenido.
- result: método que ejecute operation.
Ejemplo de implementación basada en la consigna:
function answer(operation) {
return {
name: 'answer',
result: function () {
return operation();
}
};
}
¿Cómo validar el comportamiento en Node?
Prueba localmente creando una función simple y verificando la salida. La ejecución debe imprimir 3 al llamar el método result.
// función de prueba
function op() {
return 1 + 2;
}
const res = answer(op);
console.log(res.result()); // 3
- Verifica que result ejecute operation y retorne su valor.
- No dejes código extra en el envío; solo lo solicitado.
¿Qué conceptos de MDN debes dominar?
Revisa cuidadosamente la documentación de Mozilla Developer Network. Estos son los conceptos clave para resolver bien este dominio y los Tasks 9.1 y 9.2:
- Closures: funciones que recuerdan su entorno léxico; útiles para encapsular estado.
- Hoisting: cómo el motor eleva declaraciones y afecta el orden de uso de variables y funciones.
- Múltiples formas de crear objetos: literales, funciones constructoras,
Object.create, clases; elige según necesidad.
- Prototipo: cómo funciona la cadena de prototipos y cómo controlar el prototipo al crear objetos.
- Funciones y sus métodos: entender cómo declarar, invocar y usar métodos relacionados.
- Export: conocer las diferentes formas de export según el entorno.
Enfócate especialmente en las formas de crear objetos y en controlar el prototipo, ya que facilitan estructurar soluciones limpias y previsibles. Reforzar closures, hoisting y el manejo de funciones completa la base para superar este dominio con confianza.
¿Tienes dudas puntuales del Task 9.x o de algún concepto de MDN? Cuéntalo en los comentarios y comparte tu enfoque para resolverlo.