arguments介绍(二)
1.1 将参数从一个函数传递到另一个函数
下面是将参数从一个函数传递到另一个函数的推荐做法。
function foo() { bar.apply(this, arguments); } function bar(a, b, c) { // logic }
2. ES6 中的 arguments
2.1 扩展操作符
function func() { console.log(...arguments); } func(1, 2, 3);
执行结果是:
1 2 3
2.2 Rest 参数
function func(firstArg, ...restArgs) { console.log(Array.isArray(restArgs)); console.log(firstArg, restArgs); } func(1, 2, 3);
true
1 [2, 3]
2.3 默认参数
function func(firstArg = 0, secondArg = 1) { console.log(arguments[0], arguments[1]); console.log(firstArg, secondArg); } func(99);
99 undefined
99 1
可见,默认参数对 arguments 没有影响,arguments 还是仅仅表示调用函数时所传入的所有参数。
2.4 arguments 转数组
Array.from()
是个非常推荐的方法,其可以将所有类数组对象转换成数组。