arguments对象

Posted 米娜-火箭

tags:

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

arguments对象是比较特别的一个对象,arguments非常类似Array,但实际上又不是一个Array实例。

它指的是函数对象里的参数,且只能在函数内部使用。

使用

  检测函数的参数个数,引用属性 arguments.length。

  访问:arguments[0] 

1.arguments对象的长度是由实参个数而不是形参个数决定的。

function a(a,b,c){
  console.log(arguments.length)
  console.log(arguments[3])
  b=b-a;
  console.log(b)
}
a(1,2);//2 undefined 1

2.javascript中函数是不能重载的。

如何实现重载呢?

function fn(){
            switch(arguments.length){
                case 0:
                    //执行语句块
                    break;
                case 1:
                    //执行语句块
                    break;
                case 2:
                    //执行语句块
                    break;
            }
}

3.arguments对象中有一个非常有用的属性:callee。arguments.callee返回此arguments对象所在的当前函数引用。在使用函数递归调用时推荐使用arguments.callee代替函数名本身。

function a(a){
if(a==1){return 1}
return a+arguments.callee(--a);
}
a(10);//55

 

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

将对象列表传递给片段

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

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

js常用代码片段

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

可以直接拿来用的15个jQuery代码片段