Function 在JavaScript中使用特定的默认参数调用函数?
我有一个这样的函数:Function 在JavaScript中使用特定的默认参数调用函数?,function,default-parameters,Function,Default Parameters,我有一个这样的函数: function foo(a, b, c=0, d=10, e=false) { // ... } 我希望使用特定的输入调用此函数,但不一定需要在输入中按顺序列出它们。就像: foo("bar", "skurr", e=true); 我知道在python中可以这样调用函数,但对于js,似乎还有另一种方法我不知道 我尝试过输入一个对象,但没有成功,因为它只是使用对象作为函数的第一个参数 foo({a: "bar&quo
function foo(a, b, c=0, d=10, e=false) {
// ...
}
我希望使用特定的输入调用此函数,但不一定需要在输入中按顺序列出它们。就像:
foo("bar", "skurr", e=true);
我知道在python中可以这样调用函数,但对于js,似乎还有另一种方法我不知道
我尝试过输入一个对象,但没有成功,因为它只是使用对象作为函数的第一个参数
foo({a: "bar", b: "skurr", e: true});
在JavaScript中如何以这种方式调用函数?一个选项使用了您所描述的“对象作为第一个参数”,但语法有点奇怪。考虑:
function foo({a, b=0}) { console.log(a,b); }
这定义了一个函数,该函数需要一个对象作为第一个参数,并对该对象施加结构约束。特别是,以下措施将起作用:
foo({a:1}); // output: 1 0
foo({a:1, b:2}); // output: 1 2
foo({}); // output: undefined 0
foo({a:1, b:2, c: 3}); // output: 1 2 /* c is ignored */
而以下操作将引发错误:
foo(); // TypeError: Cannot destructure property `a` of 'undefined' or 'null'
另一个选项,你经常会看到,是这样一个习惯用法:
function foo(some_object) { let {a,b} = some_object; console.log(a,b); }
这两种情况都是类似的。据我所知,这是最接近python的语法(这个答案可能给出了更多的解释,我对解释观察到的效果的形式语言进行了可能过于透彻的分析)