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

302
Visualizações
La llamada de función de JavaScript dentro de otra llamada le permite acceder a argumentos a los que "argumentos [num]" no puede acceder

Estaba aprendiendo en el campamento de código libre y caí en un problema. Los arguments[1] resultan indefinidos cuando la función se llama así nombre de functionName(arg1) (arg2) , por lo que, por ejemplo, los arguments[1] darían como resultado indefinidos pero usando esto lo resolvió return (second) => addTogether(first, second); y no sé cómo una llamada de función en la función en sí podría haber accedido a algo a lo que ni siquiera los arguments[1] pudieron acceder, ¿alguien puede explicar aquí el código completo si alguien está interesado?

 function addTogether() { const [first, second] = arguments; if (typeof(first) !== "number") return undefined; if (second === undefined) return (second) => addTogether(first, second); if (typeof(second) !== "number") return undefined; return first + second; }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Cuando llama a la función usted mismo con solo un argumento, devuelve otra función.

El secreto es que el valor de first ya está almacenado dentro del cierre que devuelve la otra función desde la primera vez que llamaste a addTogether().

La función devuelta toma el second como argumento y luego llama a addTogether() con el first almacenado desde la llamada inicial y el second acaba de pasar a la función que llama a addTogether nuevamente.

Agregué un registro de consola dentro de addTogether para mostrar los valores de primero y segundo para las dos llamadas

 function addTogether() { const [first, second] = arguments; console.log('first = ',first, ', second = ', second) if (typeof(first) !== "number") return undefined; if (second === undefined) // `first` is already defined above from the first call // `second` will be passed into this new function that gets returned when you call it later return (second) => addTogether(first, second); if (typeof(second) !== "number") return undefined; return first + second; } // store the returned function as a variable const fn = addTogether(5); // now call the returned function with `second` value as parameter console.log('Total =',fn(10))//expect 15

about 4 years ago · Juan Pablo Isaza 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