访问多个参数

时间:2018-10-22 12:58:17

标签: javascript arrays parameters

我正在尝试为两个或多个参数创建一个函数。但是我不明白为什么要使用sym([1,2,3],[5,2,1,4]);

function sym(args) {
  return args;
}

仅返回[1、2、3]

但是

 function sym(args) {
  return args;
 }

返回{0:[1,2,3],1:[5,2,1,4]}。

function sym(args) {
 args = arguments;
 console.log(args);
}

返回{0:[循环],1:[5,2,1,4]}

2 个答案:

答案 0 :(得分:4)

您正在使用单个名为args的参数定义一个函数。您要查找的是称为 variadic arguments (或可变参数),表示“ 0个或多个参数”。

使用rest parameters

function sym(...args) {
  return args;
}

或者,如果您使用的是旧版JavaScript,请使用arguments

function sym() {
  return Array.from(arguments);
}

您的最后一个示例实际上非常漂亮。当您执行args = arguments时(严格模式除外),您正在隐式修改arguments 并为其提供对自身的引用(因此为[circular])。我热烈推荐strict mode以避免这些怪癖。

答案 1 :(得分:0)

有多种编写和分解IE的方法:

sym([[1,2,3], [1,2,3,4,5]]);

function sym([arg1, arg2]) {
 console.log(arg1,arg2);
}

or

function sym(args) {
 console.log(args);
}