考虑具有3个(任意)参数的函数,其中两个参数具有默认值:
const foo = (a, b=1, c=2) => {
console.log(a,b,c);
}现在,我希望参数b有它的默认值,而参数c有传递给我的值。我做了这样的事:
foo(0, c = 10); // Ideally, a = 0, b = 1, c = 10但该函数的输出是:
0 10 2因此,10的值将传递给参数b,而不是c。为什么即使在我显式地传递了c的值之后也会发生这种情况呢?实现我想做的事情的正确方法是什么?
发布于 2020-06-18 03:15:27
您需要将undefined作为默认参数传递给您。
const foo = (a, b=1, c=2) => {
console.log(a,b,c);
}
console.log(foo(1))
console.log(foo(1, undefined,25))
对于您要传递的签名类型,请考虑始终传递一个对象并销毁
const foo = ({ a, b=1, c=2 }) => {
console.log(a,b,c);
}
console.log( foo({ a: 1 }) )
console.log( foo({ a: 2, c: 5 }) )
https://stackoverflow.com/questions/62441722
复制相似问题