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

304
Views
ECMAScript 6 función de flecha que devuelve un objeto

Al devolver un objeto de una función de flecha, parece que es necesario usar un conjunto adicional de {} y una palabra clave de return debido a una ambigüedad en la gramática.

Eso significa que no puedo escribir p => {foo: "bar"} , pero tengo que escribir p => { return {foo: "bar"}; } .

Si la función de flecha devuelve algo que no sea un objeto, el {} y el return son innecesarios, por ejemplo: p => "foo" .

p => {foo: "bar"} devuelve undefined .

Un p => {"foo": "bar"} modificado arroja “ SyntaxError : token inesperado: ' : '” .

¿Hay algo obvio que me estoy perdiendo?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Debe envolver el literal del objeto que regresa entre paréntesis. De lo contrario, se considerará que las llaves denotan el cuerpo de la función. Los siguientes trabajos:

 p => ({ foo: 'bar' });

No necesita envolver ninguna otra expresión entre paréntesis:

 p => 10; p => 'foo'; p => true; p => [1,2,3]; p => null; p => /^foo$/;

y así.

Referencia: MDN - Devolver objetos literales

over 4 years ago · Santiago Trujillo Report

0

Puede preguntarse por qué la sintaxis es válida (pero no funciona como se esperaba):

 var func = p => { foo: "bar" }

Es debido a la sintaxis de etiquetas de JavaScript :

Entonces, si transpila el código anterior a ES5, debería verse así:

 var func = function (p) { foo: "bar"; //obviously no return here! }
over 4 years ago · Santiago Trujillo Report

0

Si el cuerpo de la función flecha está entre llaves, no se devuelve implícitamente. Envuelva el objeto entre paréntesis. Se vería algo como esto.

 p => ({ foo: 'bar' })

Al envolver el cuerpo entre paréntesis, la función devolverá { foo: 'bar } .

Con suerte, eso resuelve tu problema. Si no, recientemente escribí un artículo sobre las funciones de flecha que lo cubre con más detalle. Espero que les sea útil. Funciones de flecha de Javascript

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!