我注意到在某些函数中使用了arguments对象:
function fn(arg1, arg2)
{
console.log(arguments[0])
}
fn(1, 2); // 1
为什么它有用?
答案 0 :(得分:2)
在你的例子中,它没用,也不是个好主意。当你想要一个可以接受无限数量参数的函数时,它会很有用:
function sum() {
var total = 0;
for (var i = 0; i < arguments.length; i += 1) {
total += arguments[i];
}
return total;
}
console.log(sum(5, 6, 7, 8)); // 26
请注意,ES6允许使用rest parameters,这在目前使用arguments
的大多数情况下会更有用:
function sum(...values) {
return values.reduce(function (prev, cur) {
return prev + cur;
}, 0);
}