Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

157
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda