Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

301
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!