我正在尝试为两个或多个参数创建一个函数。但是我不明白为什么要使用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]}
答案 0 :(得分:4)
您正在使用单个名为args
的参数定义一个函数。您要查找的是称为 variadic arguments (或可变参数),表示“ 0个或多个参数”。
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);
}