gpt4 book ai didi

javascript - 为什么箭头函数接受主体中的函数调用?

转载 作者:行者123 更新时间:2023-11-28 13:09:57 24 4
gpt4 key购买 nike

这太奇怪了!我正在查看 AWS Lambda 示例代码,他们为回调做了一个奇怪的 ES6 声明:

const done = (err, res) => callback(null, {
statusCode: err ? '400' : '200',
body: err ? err.message : JSON.stringify(res),
headers: {
'Content-Type': 'application/json',
},
});

因此,我制作了自己的简化示例来尝试理解此声明。

function add (x, y) {
return x + y
}

var done = (a, b) => add(1,7)

console.log(done(1,2)) // 8

上面的代码最后记录了 8。我认为这相当于:

function add (x, y) {
return x + y
}

var done = function (a, b) { add(1,7) }

console.log(done(1,2)) // undefined

但事实并非如此。它产生了未定义的。有人可以解释一下胖箭头声明中的函数调用为什么不只是执行并返回一个值吗?

最佳答案

=>的右侧是一个语句(而不是一个 block )时,就会有一个隐式的返回

你的函数表达式...

var done = function (a, b) { add(1,7) }

...省略该返回语句。应该是:

var done = function (a, b) { return add(1,7) }

关于javascript - 为什么箭头函数接受主体中的函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43348739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com