Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

155
Vistas
Cómo reutilizar una función de cierre asignándola a una variable o constante en JavaScript

Estoy resolviendo un ejercicio que pretende usar cierres. Debe crear una función que devuelva una función que almacenará un valor y, cuando la reutilice, agregue el nuevo valor al guardado.

 const firstValue = myFunction(3); const secondValue = firstValue(4); // result => 7

este es el código que estoy usando para practicar los cierres:

 function addNumbers(num) { let storage = 0 let n = num function adding(n) { storage += n; return storage } return adding(n) } let firstAttemp = addNumbers(4) let secondAttemp = firstAttemp(3) console.log(firstAttemp)

esto arroja un error "TypeError no detectado: firstAttemp no es una función"

about 4 years ago · Santiago Gelvez
2 Respuestas
Responde la pregunta

0

const addNumbers = (a) => (b) => a + b

Se llama curry, más detalles aquí .

PD: si desea utilizar la sintaxis de la function , se verá así:

 function addNumbers(a) { return function (b) { return a + b } }
about 4 years ago · Santiago Gelvez Denunciar

0

Como dijo @skara en su comentario, return adding(n) devuelve el resultado de llamar a adding en lugar de devolver la función para que pueda llamarse más tarde con firstAttemp(3) .

Desafortunadamente, todavía no funciona porque en realidad no asigna el valor pasado a addNumber para agregarlo más tarde.

 function addNumbers(num) { let storage = 0; let n = num; function adding(n) { storage += n; return storage; } return adding; } let firstAttemp = addNumbers(4); let secondAttemp = firstAttemp(3); console.log(firstAttemp); console.log(secondAttemp); // 3! 😢

En realidad, no necesita guardar manualmente el valor de num en una variable, ya que se captura en el cierre alrededor de la adding que se devuelve.

 function addNumbers(num) { function adding(n) { return num + n; return storage; } return adding; } let firstAttemp = addNumbers(4); let secondAttemp = firstAttemp(3); console.log(secondAttemp); // 7 👍🏻

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda