javascript – 函数参数的默认值?

所以我一直在做这件事,只要我记得,但我很好奇,如果这真的是我应该做的.你编写一个接受参数的函数,所以你预计它有一个值,但如果没有,你有很好的理由默认它,说零.我目前做的是写一个帮助函数:

function foo() { return foo(0); };
function foo(bar) { ... };

我刚刚跑过一个我这样做的实例,我奇怪地看了几秒钟,然后再了解我的逻辑.我来自php,这是微不足道的:

function foo(bar=0) { ... }

有没有我不知道的JavaScript替代品?

最佳答案
您不能在JavaScript中重载函数.相反,使用基于对象的初始化,或检查值并分配默认值(如果没有提供).

在你的例子中,第二个函数foo(bar)将替换第一个函数.

这是一个使用对象初始化的函数.

function foo(config) {
    extend(this, config);
}

其中extend是将config对象与当前对象合并的函数.它类似于jQuery中的$.extend方法,或MooTools的$extend方法.

调用函数并将其命名为键值对

foo({ bar: 0 });

初始化的另一种方法是查看提供的值,如果未给出值,则分配默认值

function foo(bar) {
    bar = bar || 0;
}

只要酒吧不是一个错误的价值,这是有效的.所以foo(false)或foo(“”)仍然会将bar初始化为0.对于这种情况,请执行明确的检查.

function foo(bar) {
    bar = (typeof bar == 'undefined' ? 0 : bar);
}

转载注明原文:javascript – 函数参数的默认值? - 代码日志