【问题标题】:JavaScript: Why do we use **arguments** object in a function? [duplicate]JavaScript:为什么我们在函数中使用 **arguments** 对象? [复制]
【发布时间】:2015-03-19 13:52:32
【问题描述】:

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

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

fn(1, 2); // 1

为什么有用?

【问题讨论】:

标签: javascript


【解决方案1】:

在您的示例中,它没有用,也不是一个好主意。当您想要一个可以接受不定数量参数的函数时,它会很有用:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 2011-03-15
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 2020-11-15
    相关资源
    最近更新 更多