• js中的arguments


    了解这个对象之前先来认识一下javascript的一些功能:

    其实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

    我们知道每一个对象都有自己的属性,arguments对象也不例外,首先arguments的访问犹如Array对象一样,
    用0到arguments.length-1来枚举每一个元素。下面我们来看看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));

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

    arguments 的用法和特性基本就是这么多了。可能callee属性用到的比较少。但是如果自己封装或者写一些js的时候 除了callee的东西基本都会用到。有不对的地方希望朋友们多多支出。大家共同进步。

  • 相关阅读:
    必会重构技巧(二):使用多态替换条件
    必会重构技巧(五):划分职责
    Flickr 网站架构分析
    必会重构技巧(三):提取接口
    WCF 一步一步 发布 WCF服务 到 IIS (图)
    LINQ 图解
    在Silverlight中如何创建WCF Service
    必会重构技巧(四):提取工厂类
    技术汇总:第十四章:电脑端生成支付宝二维码支付
    HDU 4463 Outlets 2012年亚洲区域赛杭州赛区现场赛K题
  • 原文地址:https://www.cnblogs.com/ckAng/p/10489373.html
Copyright © 2020-2023  润新知