如何避免将null参数传递给具有多个可选参数的函数?

时间:2015-10-20 22:20:15

标签: javascript function web

我有一个看起来像这样的函数:

function f(requiredParamA, requiredParamB, optionalObjectParamA, optionalObjectParamB) {
    optionalObjectParamA = optionalObjectParamA || {};
    optionalObjectParamB = optionalObjectParamB || {};

    // rest of the function
}

说我想使用f的值来呼叫optionalObjectParamB,而不是optionalObjectParamA。我能做到这一点:

f("john", 100, null, {vegatarian: true});

但这会导致一个丑陋的API。 还有其他选择吗?我应该如何设计功能以及如何调用它?

1 个答案:

答案 0 :(得分:4)

传递对象而不是参数。然后,您可以拥有无​​限的可选参数,而不会炸毁参数列表。

function f(requiredParamA, requiredParamB, context) {
    var optional = context || {};
    // handle optional.optionalObjectParamA..
    // handle optional.optionalObjectParamB..
}