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

标签 javascript function web

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

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

    // rest of the function
}

假设我想使用 optionalObjectParamB 的值调用 f,但不使用 optionalObjectParamA 的值。我可以这样做:

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

但这会导致 API 变得丑陋。 还有其他选择吗?我应该如何设计该函数以及如何调用它?

最佳答案

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

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

关于javascript - 如何避免将空参数传递给具有多个可选参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33247801/

相关文章:

function - 匿名函数 vs 非匿名函数 Lua

javascript - 专业网站

javascript - 哪个片段执行得更快/生成的代码行更少? (C++/JavaScript)

javascript - 如何在 JavaScript 中插入外部样式表(动态)

javascript - JQuery/JavaScript,动态存储/应用函数

java - 在服务器上的 Applet 中使用 OutputFileStream ("test.abc")正在浏览器的文件夹中创建一个新文件

php - SOA 和 Web 应用程序

javascript - 具有媒体宽度的 JQuery 函数

javascript - 如何在我的网页中动态更新和执行 javascript 代码?

javascript - showDiv 函数 js 的小错误