JavaScript:为什么我们在函数中使用**参数**对象?

时间:2015-01-21 05:57:21

标签: javascript

我注意到在某些函数中使用了arguments对象:

function fn(arg1, arg2)
{
    console.log(arguments[0])
}

fn(1, 2); // 1

为什么它有用?

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);
}