100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > JS入门之arguments对象

JS入门之arguments对象

时间:2022-07-07 04:26:50

相关推荐

JS入门之arguments对象

每天一对象,JS天天见,今天我们来看看arguments对象及属性。arguments对象不能显式创建,arguments对象只有函数开始时才可用。函数的arguments对象并不是一个数组,访问单个参数的方式与访问数组元素的方式相同。索引n实际上是arguments对象的0…n属性的其中一个参数。

下面的示例演示了arguments对象的用法,arguments对象和Function是分不开的。

1functionArgTest(a,b){

2vari,s="TheArgTestfunctionexpected";

3varnumargs=arguments.length;//获取被传递参数的数值。

4varexpargs=ArgTest.length;//获取期望参数的数值。

5if(expargs<2)

6s+=expargs+"argument.";

7else

8s+=expargs+"arguments.";

9if(numargs<2)

10s+=numargs+"waspassed.";

11else

12s+=numargs+"werepassed.";

13s+="\n\n"

14for(i=0;i<numargs;i++){//获取参数内容。

15s+="Arg"+i+"="+arguments[i]+"\n";

16}

17return(s);//返回参数列表。

18}

以上是arguments对象,由于和Function对象紧密地联系在一起。也就是说每一个函数都有自己的argument属性。下面我们来看看argument属性:为当前执行的function对象返回一个arguments对象,function 参数是当前执行函数的名称,可以省略。

通过arguments属性(相对于Function来说),函数可以处理可变数量的参数。arguments对象的length属性包含了传递给函数的参数的数目。对于arguments对象所包含的单个参数,其访问方法与数组中所包含的参数的访问方法相同。请看下面的例子:

1functionArgTest(){

2vari,s,numargs=arguments.length;

3s=numargs;

4if(numargs<2)

5s+="argumentwaspassedtoArgTest.Itwas";

6else

7s+="argumentswerepassedtoArgTest.Theywere";

8for(i=0;i<numargs;i++)

9{

10s+=arguments[i]+"";

11}

12return(s);

13}

我们知道每一个对象都有自己的属性,arguments对象也不例外,首先arguments的访问犹如Array对象一样,用0到arguments.length-1来枚举每一个元素。下面我们来看看callee属性,返回正被执行的Function对象,也就是所指定的Function对象的正文。callee属性是arguments对象的一个成员,仅当相关函数正在执行时才可用。callee属性的初始值就是正被执行的Function对象,这允许匿名的递归函数。

1functionfactorial(n){

2if(n<=0)

3return1;

4else

5returnn*arguments.callee(n-1)

6}

7print(factorial(3));

8

到这里基本上把arguments对象给讲完了,不知还有其他的东西吗?其实很多东西我们都已经很熟悉了,除了上述的callee属性外,其他的我们都时不时在应用他们。OK,今天的对象学习就到这里了,明天要看的对象将是Boolean对象。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。