JavaScript之arguments

Posted 取什么昵称呢

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript之arguments相关的知识,希望对你有一定的参考价值。

Javascrip中国每个函数都会有一个Arguments对象实例arguments,它引用着函数的实参,可以用数组下标的方式"[]"引用arguments的元素。arguments.length为函数实参个数,arguments.callee引用函数自身。

arguments他的特性和使用方法

特性:

arguments对象和Function是分不开的。因为arguments这个对象不能显式创建,arguments对象只有函数开始时才可用。

使用方法:

虽然arguments对象并不是一个数组,但是访问单个参数的方式与访问数组元素的方式相同

例如:

arguments[0],arguments[1],。。。。。。。。arguments[n],

 

在js中 不需要明确指出参数名,就能访问它们,例如:

function test() {
        var s = "";
        for (var i = 0; i < arguments.length; i++) {
            alert(arguments[i]);
            s += arguments[i] + ",";
        }
        return s;
    }

test("name", "age")

输出结果:

name,age

 

下面我们来看看callee属性,返回正被执行的Function 对象,
也就是所指定的 Function 对象的正文。callee 属性是 arguments 对象的一个成员,仅当相关函数正在执行时才可用。
callee 属性的初始值就是正被执行的 Function 对象,这允许匿名的递归函数。

var sum = function (n) {
        if (1 == n) {
            return 1;
        } else {
            return n + arguments.callee(n - 1);
        }
    }

    alert(sum(6));

输出结果:

21

 通俗一点就是,arguments此对象大多用来针对同个方法多处调用并且传递参数个数不一样时进行使用。根据arguments的索引来判断执行的方法



以上是关于JavaScript之arguments的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript之arguments

javascript函数之arguments

js 常用代码片段

48个值得掌握的JavaScript代码片段(上)

JS代码片段:一个日期离现在多久了

RuntimeError: ‘lengths’ argument should be a 1D CPU int64 tensor, but got 1D cuda:0 Long tensor(代码片段