这是代码
const func0 = (...args) => {
console.error('-------0-------');
console.error(args);
console.error(args.length);
func1(args);
}
const func1 = (...args) => {
console.error('-------1-------');
console.error(args);
console.error(args.length);
}
func0(1, 2, 3);
为什么第二个arg现在不同,如何使其与第一个相同?
答案 0 :(得分:4)
(...args) =>
将参数转换为名为args
的 array 。因此,当您调用func1(args);
时,您正在使用 one 参数调用func1
,该参数是一个数组(而func0
是通过 three < / em>参数)。
如果要使用三个原始参数调用func1
,请使用 spread 将args
数组转换为参数列表:
const func0 = (...args) => {
console.error('-------0-------');
console.error(args);
console.error(args.length);
func1(...args);
}
const func1 = (...args) => {
console.error('-------1-------');
console.error(args);
console.error(args.length);
}
func0(1,2,3);