Tengo dos funciones que son, por lo que puedo decir, exactamente iguales. La única diferencia es que uno es un cuerpo conciso y el otro es la versión larga anterior a ES6. La versión concisa funciona y la otra no. ¿Cuál es el problema con la versión más larga?
//this version of the getActualSleepHours function works const getActualSleepHours = () => getSleepHours('monday') + getSleepHours('tuesday') + getSleepHours('wednesday') + getSleepHours('thursday') + getSleepHours('friday') + getSleepHours('saturday') + getSleepHours('sunday'); //this version of the getActualSleepHours function doesn't work const getActualSleepHours = function() { getSleepHours('monday') + getSleepHours('tuesday') + getSleepHours('wednesday') + getSleepHours('thursday') + getSleepHours('friday') + getSleepHours('saturday') + getSleepHours('sunday'); }La sintaxis () => something() inserta un retorno implícito antes de something() . Para que estas funciones sean equivalentes, agregue un return a la función:
function() { return getSleepHours('monday') + getSleepHours('tuesday') + getSleepHours('wednesday') + getSleepHours('thursday') + getSleepHours('friday') + getSleepHours('saturday') + getSleepHours('sunday'); }