gpt4 book ai didi

javascript - 返回一个函数调用好不好?

转载 作者:行者123 更新时间:2023-11-30 00:17:59 26 4
gpt4 key购买 nike

<分区>

假设有一个名为foo 的函数。我们将编写一个在最后调用 foo 的函数,如下所示(请注意这是真实世界的场景):

function update(string, callback) {
if (arguments.count == 2) {
if (typeof arguments[0] === 'string' && typeof arguments[1] === 'function') {
updateRows(string, callback)
} else {
callback(Error('Invalid arguments.'))
}
} else if (arguments.count == 1) {
if (typeof arguments[0] === 'function') {
async.each(array, updateRows, callback)
} else {
callback(Error('Invalid arguments.'))
}
} else {
callback(Error('Invalid arguments'))
}
}

如您所见,错误处理程序回调被写入了三次。

但是,我们可以使用 return 语句重构代码:

function update(string, callback) {
if (arguments.count == 2) {
if (typeof arguments[0] === 'string' && typeof arguments[1] === 'function') {
return updateRows(string, callback)
}
} else if (arguments.count == 1) {
if (typeof arguments[0] === 'function') {
return async.each(array, updateRows, callback)
}
}

callback(Error('Invalid arguments'))
}

现在的代码比以前干净多了。

因此,从函数返回函数好不好,是个好习惯吗?我扫描了一些由 Ryan Dahl 编写的代码块,一次没有产生任何后果。

由于没有对两者进行基准测试,我认为它们在性能上没有显着差异。

编辑: 正如 deceze 警告我的那样,我们没有返回函数,我们只是在 return 语句中调用函数。在该评论之后,我将问题标题更改为“返回函数调用”。如果造成混淆,可能会根据建议进行更新。

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