通常,随着我的代码库的增长,函数会收到越来越多的参数,并且维护变得有点草率,所以我通常只是默认为这样:
f = function(args){return args.v + 1;}
f({"v":2});
看起来更干净,但可以吗?为什么不是每个人都这样做?
答案 0 :(得分:5)
通常,如果函数占用太多参数,则可能做得太多。您应该考虑将其重构为较小的函数/对象。
鲍勃叔叔在他的“清洁代码”一书中建议使用极少参数的函数,我同意。当您有许多参数或传入对象或数组时,很难读取代码。如果你在没有读取函数主体的情况下传入一个对象,我无法猜测函数将对所有参数或它作为参数的期望做什么。答案 1 :(得分:1)
“它看起来更干净,但可以做到吗?”
是
“为什么不是每个人都这样做?”
他们不是吗?这是Javascript中最常见的“多参数”情况的标准做法:传递选项。由于在Javascript中创建一次性对象没有任何开销,因此当您有多个参数时,通常会这样做。
答案 2 :(得分:0)
没关系 - 只要您对作为变量传递的对象类型保持良好的控制,并根据需要验证这些值(考虑“false”/ null / undefined类型问题)然后是,这是一种很好的做法。也更容易维护。