在阅读有关新ES6功能的同时,我找到了定义默认值的好方法:
在ECMAScript 6中,我们可以为a的参数添加默认值 功能。这意味着如果我们之后没有传入参数 函数调用时,将使用默认参数。在ES5中默认 参数值始终设置为undefined,因此新的 将它们设置为我们想要的东西的可能性绝对是一个伟大的 增强语言。
因此使用它非常简单:
function f(p1=1, p2=2, p3=3, p4=4, p5=5){
return "{p1: " + p1 + ", p2: " + p2 + ", p3: " + p3 + ", p4: " + p4 + ", p5: " + p5 + "}";
}
var test = f();
console.log( test );
//outputs: {p1: 1, p2: 2, p3: 3, p4: 4, p5: 5}
我想知道我们如何使用此功能来执行以下操作:
function f(p1=1, p2, p3, p4, p5=5){
return "{p1: " + p1 + ", p2: " + p2 + ", p3: " + p3 + ", p4: " + p4 + ", p5: " + p5 + "}";
}
var test = f(,20, 30, 40,); //which is not correct
所以当我执行它时,我得到了这个结果:
{p1: 1, p2: 20, p3: 30, p4: 40, p5: 5}
答案 0 :(得分:4)
传递undefined
与传递任何内容(关于默认值)相同:
f(undefined, 20, 30, 40);
但是,最好只为函数中最右边的参数提供默认值:
function f(p2, p3, p4, p1=1, p5=5) { … }
f(20, 30, 40);
答案 1 :(得分:1)
没有。参数总是从左到右填充。在提供以后的产品时,您不能跳过之前的产品。
(你可以在函数体中编写代码,它会查看你传递了多少个参数并重新排列它们,但没有任何内置的东西可以用来做)。