我应该将对象作为函数的参数传递吗?
Should I pass an objects as a parameters of a function?
所以我有这个代码:
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 的参数)有两个属性(名称和消息)是后来分配给未命名函数的错误参数(代码底部)?对吗?
我还听说这是一段非常简单的代码 - 是这样吗?因为对我来说这太复杂了。
预先感谢您花时间回答。
有时将对象作为参数传递实际上更有意义且更易于阅读。
一个非常简单的函数示例:
function minus(b,a){
return b-a
}
通常人们会把它当作:
minus(1,5)
// Expected : 4, Because the latter number minus the first.
// But, it will return result of -4, without look into the function
// we do not know which number came first.
但是如果我们把它变成一个对象:
function minus(param){
return param.b-param.a
}
minus({a:1,b:5})
//Return : 4
//Like this, even if you don't know the content of the function
//you can still assign the correct value without knowing the order.
所以我有这个代码:
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 的参数)有两个属性(名称和消息)是后来分配给未命名函数的错误参数(代码底部)?对吗?
我还听说这是一段非常简单的代码 - 是这样吗?因为对我来说这太复杂了。
预先感谢您花时间回答。
有时将对象作为参数传递实际上更有意义且更易于阅读。
一个非常简单的函数示例:
function minus(b,a){
return b-a
}
通常人们会把它当作:
minus(1,5)
// Expected : 4, Because the latter number minus the first.
// But, it will return result of -4, without look into the function
// we do not know which number came first.
但是如果我们把它变成一个对象:
function minus(param){
return param.b-param.a
}
minus({a:1,b:5})
//Return : 4
//Like this, even if you don't know the content of the function
//you can still assign the correct value without knowing the order.