【问题标题】:Function with optional paramaters [duplicate]带有可选参数的函数[重复]
【发布时间】:2013-10-15 23:12:48
【问题描述】:

我正在尝试创建一个带有可选参数的函数。

function RetvinkletTrekant(par1, par2, par3, par4, par5, par6){

    if (par1) {var a = par1}
    if (par2) {var b = par2}
    if (par3) {var c = par3}
    if (par4) {var A = par4}
    if (par5) {var B = par5}
    if (par6) {var C = par6}

    document.write(A);
}

RetvinkletTrekant(null, null, null, 4, null, null);

提前致谢。

【问题讨论】:

  • 我认为您正在寻找可选参数,而不是最佳参数。
  • 你有什么问题?您的代码没有按预期工作,您还期望什么?
  • 传入一个像 args[par1] 这样的 args 散列 ... 更简单

标签: javascript


【解决方案1】:

如果您实际上是在询问 “可选参数” 而不是 “最佳参数”,那么最好的方法就是使用这样的对象。

function RetvinkletTrekant(a){

    if (a.par1) { var a = a.par1; }
    if (a.par2) { var b = a.par2; }
    if (a.par3) { var c = a.par3; }
    if (a.par4) { var A = a.par4; }
    if (a.par5) { var B = a.par5; }
    if (a.par6) { var C = a.par6; }

    document.write(A);
}

RetvinkletTrekant({
    par1: 4
});

【讨论】:

  • 你也可以(应该)省略那些if-statements。如果属性不存在,变量将是undefined
【解决方案2】:

尝试重构函数以使用一个参数。改变

function RetvinkletTrekant(par1, par2, par3, par4, par5, par6) {
// ...
}

这样的事情

function RetvinkletTrekant(config) {
// ...
}

其中 config 是一个包含您的 可选 参数的对象:

RetvinkletTrekant({par1: "foo", par5: "bar"});

【讨论】:

    猜你喜欢
    • 2016-03-27
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 2020-12-09
    • 1970-01-01
    相关资源
    最近更新 更多