1

通常,随着我的代码库的增长,函数会收到越来越多的参数,并且维护起来有点草率,所以我通常只是默认为这样的:

f = function(args){return args.v + 1;}

f({"v":2});

它看起来更干净,但是可以这样做吗?为什么不是每个人都这样做?

4

3 回答 3

5

通常,如果一个函数接受了太多参数,它可能做的太多了。您应该考虑将其重构为更小的函数/对象。

Bob 大叔在他的书 Clean Code 中建议使用很少参数的函数,我同意。当您有许多参数或传入一个对象或数组时,它会使代码难以阅读。如果您在不读取函数主体的情况下传入一个对象,我无法猜测该函数将对所有参数做什么,或者它期望作为参数做什么。

于 2012-06-20T18:58:59.443 回答
1

“它看起来更干净,但可以这样做吗?”

是的。

“为什么不是每个人都这样做?”

他们不是吗?这是 Javascript 中最常见的“多参数”情况的标准做法:传递选项。由于在 Javascript 中创建一次性对象没有开销,因此当您有多个参数时,这是一种常见的做法。

于 2012-06-20T18:58:02.423 回答
0

很好 - 只要您对作为变量传递的对象类型保持良好的控制,并根据需要验证这些值(考虑“假”/空/未定义类型问题),那么是的,这很好实践。维护起来也容易很多。

于 2012-06-20T19:03:55.683 回答