我看到了这个问题:Multiple arguments vs. options object并且共识似乎是对象参数列表对于包含可选参数的长参数列表或列表来说是一个很好的设计模式。
我想知道将它用于只有2或3个参数的函数的优点/缺点是什么,即为什么你会使用传统的参数列表?
function normalArgs(arg1, arg2, arg3) {
// order of args in function call must be correct
}
function objectArgs(args) {
// use args.arg1, args.arg2, args.arg3
// significantly reduces errors involving out of order/missing arguments
}
对象文字的创建是否会产生重大开销?
答案 0 :(得分:1)
根据我的经验,当我们的方法暴露在外面时(作为服务或API向外部方或其他模块重用您的API),拥有参数对象总是安全的。因此,您将获得更改参数的好处,而无需更改API签名,从而通过不重建API等存根来节省我们的时间。
但是,当你没有处理上述条件时,解析方法中的每个参数都是可以的。
答案 1 :(得分:0)
您引用的问题中的最高投票答案解释得非常好。这始终是可读性和可维护性的问题。
非常明确的代码,例如总是传递命名参数列表 - 虽然总是完全清楚 - 但在较简单的情况下也可以减损的可读性。
这是一个判断问题。总是想着下一个读它的人 - 他会挠挠脑袋吗? (请记住,'下一个'可能是你,几周,几个月或者几年后。)