Puedo asignar el valor de una función anónima a una variable como esta:
let x = function(y,z) { return y + z }(1,2);
El valor resultante de x es 3. Siguiendo la guía en https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions , creo que el equivalente al uso de funciones de flecha debería ser esto.
let x = (y = 1, z = 2) => { return y + z };
Sin embargo, el valor de x en este caso se convierte en NaN. ¿Porqué es eso?
let x = (y = 1, z = 2) => { return y + z }
asigna la función a la variable, no su llamada. Para asignar la llamada de función a una variable, primero debe llamarla. Entonces, la función de flecha es equivalente a let y = function(y,z) { return y + z }(1,2);
sería:
let x = ((y = 1, z = 2) => { return y + z })() // or let x2 = ((y, z) => { return y + z })(1,2) // or let x3 = ((y = 1, z = 2) => (y + z))() // or let x4 = ((y, z) => (y + z))(1,2) let y = function(y,z) { return y + z }(1,2); console.log(x) console.log(x2) console.log(x3) console.log(x4) console.log(y)
.as-console-wrapper { max-height: 100% !important; top: 0; }