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