• 关于arguments的用法


    当函数的参数个数无法确定的时候:用 arguments。函数的 arguments 对象并不是一个数组,它相当于是一个实参的集合,但是访问单个参数的方式与访问数组元素的方式相同。访问

    函数中的第n个参数 则可以使用arguments[n-1]。

    1、arguments实际为实参的集合。既然是集合,那么一定有长度length;

    arguments.length为函数实参的个数,要注意的是,arguments对象并不是一数组,它也不具有数据的所有方法,但是访问单个参数的方式与访问数组元素的方式相同。比如:

    alert(sum( 1,2,3,4 ))   //返回的结果就是10
    function sum (){
        var n = 0;
        for( var i=0; i<arguments.length; i++ ){
            n += arguments[i];
        }
        return n;
    }

    2、属性callee

    对象都是有自己的属性和方法的,Arguments对象也是一样,callee就是它的方法,这个方法用的不多,很容易被我们忽略,它指向的是正在被执行的Function对象,

    最常用的例子就是用来做递归了。比如:

    function sum(n){
                if(n==1){
                    return 1;
                }else{
                    return n+arguments.callee(n-1)
                }
            }
    console.log(sum(100))    //打印的结果就是5050

    这个打印出来,就相当于实现了从1加到100的结果,实际上就是一个简单的计算器。

    其实,关于arguments简单总结一下就是:

    1、arguments像数组,是一个实参集合。

    2、arguments有length属性,代表传给函数的参数个数。

    3、可以数组下标访问参数,如arguments[0],但是没有数组其它方法。

    4、可以使用callee这个属性调用自身。

    好了,大概就是这样了,若是有问题,欢迎指出!

  • 相关阅读:
    Trap 冷启动与热启动告警
    SNMP支持IPv6
    跨函数使用内存
    动态内存分配
    结构体
    指针和数组
    组合模式
    类方法实用点语法调用
    数据结构与算法定义
    RAC初步使用
  • 原文地址:https://www.cnblogs.com/web001/p/8047564.html
Copyright © 2020-2023  润新知