我想知道如果我的函数接受 4 个参数 a、b、c、d 的最佳实践是什么,但我遇到的情况是我没有为参数 c 传递值但需要为参数 d 传递一个值所以:
function myFunction(a,b,c,d) {
//...
}
myFunction(paramA, paramB, '', paramD);
您是否为参数 c 传入 undefined ,然后在函数内部进行检查或类似的事情?
我想知道如果我的函数接受 4 个参数 a、b、c、d 的最佳实践是什么,但我遇到的情况是我没有为参数 c 传递值但需要为参数 d 传递一个值所以:
function myFunction(a,b,c,d) {
//...
}
myFunction(paramA, paramB, '', paramD);
您是否为参数 c 传入 undefined ,然后在函数内部进行检查或类似的事情?
更好的是为我使用Object:
function myFunction( options ) {
//...
}
myFunction({
paramA: "someVal",
paramD: "anotherVal"
});
然后在函数中,您可以检查空参数并传递默认值:
function myFunction( options ) {
options = options || {};
options.paramA = options.paramA || "defaultValue";
// etc...
}
您可以使任何可选参数在您的函数签名中最右侧,这样您就可以在调用函数时将它们关闭。
function myFunction(a, b, d, c) {
// ...
}
myFunction(1, 2, 3, 4);
// call without 'c'
myFunction(1, 2, 3);
如果未定义为最简单/可靠的解决方案,我发现设置默认值
function myFunction(a,b,c,d) {
if (typeof a === 'undefined') { a = 'val'; }
if (typeof b === 'undefined') { b = 'val'; }
if (typeof c === 'undefined') { c = 'val'; }
if (typeof d === 'undefined') { d = 'val'; }
}
null
作为你没有的参数传递。undefined
更专业一点,尽管它们的工作方式相同。
如果你知道传递了什么参数,你可以使用函数的参数'arguments'。例如:
function example(a, b, c, d) {
if (arguments.length < 4) {
paramC = defaultParam; // something default value for passed C
}
}