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

289
Views
¿Información oficial sobre `argumentos` en las funciones de flecha ES6?
(() => console.log(arguments))(1,2,3); // Chrome, FF, Node give "1,2,3" // Babel gives "arguments is not defined" from parent scope

De acuerdo con Babel (y por lo que puedo decir de las recomendaciones iniciales de TC39), eso es "inválido" ya que las funciones de flecha deberían usar su alcance principal para los argumentos. La única información que he podido encontrar que contradice esto es un solo comentario que dice que esto fue rechazado por TC39, pero no puedo encontrar nada que lo respalde.

Solo busco documentos oficiales aquí.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Chrome, FF y el nodo parecen estar mal aquí, Babel tiene razón:

Las funciones de flecha no tienen un enlace de arguments propio en su alcance; no se crea ningún objeto de argumentos al llamarlos.

buscando documentos oficiales aquí

Las expresiones de función de flecha se evalúan como funciones que tienen su [[ThisMode]] establecido en lexical , y cuando se llaman así, la creación de instancias de declaración no crea un objeto de arguments . Incluso hay una nota específca (18 a) que dice que " Las funciones de flecha nunca tienen objetos de argumentos ".

over 4 years ago · Santiago Trujillo Report

0

Como señaló Bergi, las funciones de flecha no tienen su propia variable de arguments .

Sin embargo, si desea capturar los argumentos para su función de flecha, simplemente puede usar un parámetro de descanso

 const myFunc = (...args) => console.log ("arguments", args) myFunc (1, 2, 3) // arguments [1, 2, 3]

Los parámetros de descanso se pueden combinar con otros parámetros posicionales, pero siempre deben incluirse como el último parámetro

 const myFunc = (a, b, c, ...rest) => console.log (a, b, c, rest) myFunc (1, 2, 3, 4, 5, 6, 7) // 1 2 3 [ 4, 5, 6, 7 ]

Si comete el error de escribir un parámetro de descanso en cualquier otra posición, obtendrá un Error

 const myFunc = (...rest, a, b, c) => console.log (a, b, c, rest) myFunc (1, 2, 3, 4, 5, 6, 7) // Error: Rest parameter must be last formal parameter

over 4 years ago · Santiago Trujillo 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!