首页 > 解决方案 > 如何将具有多个参数的匿名函数转换为箭头函数?

问题描述

我可以将匿名函数的值分配给这样的变量:

let x = function(y,z) { return y + z }(1,2);

x 的结果值为 3。按照https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions上的指南,我认为使用箭头函数的等效项应该是这个。

let x = (y = 1, z = 2) => { return y + z };

然而,在这种情况下 x 的值变为 NaN。这是为什么?

标签: javascriptfunction

解决方案


let x = (y = 1, z = 2) => { return y + z }函数分配给变量,而不是它的调用。要首先将函数调用分配给变量,您需要调用它。因此,箭头函数相当于let y = function(y,z) { return y + z }(1,2);

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; }


推荐阅读