现在将剩余的args传递给下一个func和args是不同的

时间:2018-06-30 04:09:08

标签: javascript

这是代码

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现在不同,如何使其与第一个相同?

1 个答案:

答案 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);