关于arguments的用法

Posted 麦兜家园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于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这个属性调用自身。

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

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

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

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

python库 argparse的add_argument基础用法

js常用代码片段

argparse 代码片段只打印部分日志

关于Python的TypeError not all arguments converted during string formatting