TransWikia.com

"arguments" não funciona numa arrow function?

Stack Overflow em Português Asked by Lucas de Carvalho on December 16, 2021

Estou fazendo um teste simples com arrow function, mas quando uso o arguments ele retorna

Uncaught ReferenceError: arguments is not defined

Como posso usar os parâmetros?

const teste = () => {
  for(i in arguments){
    return arguments[i];
  }
}

teste('teste', 123);

One Answer

Acho que é isto que deseja, apesar de não fazer muito sentido porque vai imprimir o primeiro e não fará mais nada.

Conforme o erro informava, faltava declarar o arguments e dizer que ele seria um array de argumentos e não apenas um deles, por isso usei o ... que é uma construção para isto mesmo.

const teste = (...args) => { for(i in args) return args[i]; }

console.log(teste('teste', 123));

Coloquei no GitHub para referência futura.

Talvez queria usar o yield, mas aí não dá para usar a sintaxe de arrow function?

Mudei o nome da variável conforme o comentário do bfavaretto. Ele tem razão que em se tratando do ecossistema do JS é possível que algum conflito ocorra se não hoje, algum dia, já que arguments é "mágico".

E de acordo com o comentário do AP não dá para fazer sem declarar porque ele quer uma semântica diferente do que existe "magicamente" com o uso do arguments. Sai da convenção criada, é preciso da configuração que sempre é mais verbosa.

Answered by Maniero on December 16, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP