【发布时间】:2021-08-26 23:09:37
【问题描述】:
所以我有这个代码:
const failure1 = false;
const failure2 = false;
function callbackFunction(callback, errorCallback) {
if (failure1) {
errorCallback({
name: 'Negative event1 occurred',
message: ':('
})
} else if (failure2) {
errorCallback({
name: 'Negative event2 occurred',
message: ':/'
})
} else {
callback('Mission complete!')
}
}
callbackFunction((message) => {
console.log('Success: ' + message)
}, (error) => {
console.log(error.name + ' ' + error.message)
})
这看起来非常糟糕:
errorCallback({
name: 'Negative event2 occurred',
message: ':/'
})
像这样将对象作为函数参数传递是否合乎道德?因为现在,我只是看着它,我的大脑就在煎炸。
我应该如何阅读它?这是一个未命名的对象(分配给 errorCallback 函数 - 这是 callbackFunction 的参数),具有两个属性(名称和消息),后来分配给错误未命名函数的参数(代码底部)?对吗?
我还听说这是一段非常简单的代码 - 这是真的吗?因为对我来说这太令人费解了。
提前感谢您花时间回答问题。
【问题讨论】:
-
将对象作为函数参数传递没有错。您已经在将函数对象传递给
callbackFunction(callback, errorCallback)。如果看起来很麻烦,您总是可以创建一个分配给变量的对象并将命名变量作为参数传递errorCallback(messageObject)
标签: javascript function callback