Traté de mirar MDN en funciones de flecha , que enlaza con un artículoES6 en profundidad: funciones de flecha y la gramática ECMAScript . No encontré un ejemplo de este estilo de cuerpo de función.
Consulte takeStockForBowl en el código de ejemplo a continuación.
Pregunta, ¿cómo se llamaría este estilo de definición de función?
Tal vez sea una reutilización de una sintaxis de JavaScript más básica y simplemente no lo veo. Disculpas si es obvio.
const takeStockForBowl = bowl => ( // open paren takeForBowl('protein', bowl), // side effect 1 takeForBowl('grain', bowl), // side effect 2 takeForBowl('veg', bowl), // ... bowl.supplied = true, // side effect n bowl // result ) // close parenEn primer lugar, takeStockForBowl es realmente difícil de leer.
Para entender lo que está pasando aquí, necesitamos entender dos cosas:
Básicamente lo que el autor ha hecho aquí es evitar escribir lo siguiente:
aprovechando (o abusando) del retorno implícito en la función flecha y el operador coma.
Lo que hace el operador coma es evaluar cada uno de sus operandos de izquierda a derecha y devuelve el valor del último operando que en este caso es bowl .
Una versión más legible de esta función es:
const takeStockForBowl = bowl => { takeForBowl('protein', bowl); takeForBowl('grain', bowl); takeForBowl('veg', bowl); bowl.supplied = true; return bowl; }