`
陈英杰_-_
  • 浏览: 16861 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

JS arguments对象

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

  下面的示例演示了 arguments 对象的用法,arguments对象和Function是分不开的。
 1function ArgTest(a, b){
 2   var i, s = "The ArgTest function expected ";
 3   var numargs = arguments.length;     // 获取被传递参数的数值。
 4   var expargs = ArgTest.length;       // 获取期望参数的数值。
 5   if (expargs < 2)
 6      s += expargs + " argument. ";
 7   else
 8      s += expargs + " arguments. ";
 9   if (numargs < 2)
10      s += numargs + " was passed.";
11   else
12      s += numargs + " were passed.";
13   s += "\n\n"
14   for (i =0 ; i < numargs; i++){      // 获取参数内容。
15   s += "  Arg " + i + " = " + arguments[i] + "\n";
16   }
17   return(s);                          // 返回参数列表。
18}

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

   通过 arguments 属性(相对于Function来说),函数可以处理可变数量的参数。arguments 对象的 length 属性包含了传递给函数的参数的数目。对于arguments 对象所包含的单个参数,其访问方法与数组中所包含的参数的访问方法相同。请看下面的例子:
 1function ArgTest(){
 2   var i, s, numargs = arguments.length;
 3   s = numargs;  
 4   if (numargs < 2)
 5      s += " argument was passed to ArgTest. It was ";
 6   else
 7      s += " arguments were passed to ArgTest. They were " ;
 8   for (i = 0; i < numargs; i++)
 9      {
10         s += arguments[i] + " ";
11      }
12   return(s);
13}

   我们知道每一个对象都有自己的属性,arguments对象也不例外,首先arguments的访问犹如Array对象一样,用0到arguments.length-1来枚举每一个元素。下面我们来看看callee属性,返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。callee 属性是 arguments 对象的一个成员,仅当相关函数正在执行时才可用。callee 属性的初始值就是正被执行的 Function 对象,这允许匿名的递归函数。
1function factorial(n){
2  if (n <= 0)
3  return 1;
4  else
5    return n * arguments.callee(n - 1)
6}
7print(factorial(3));
8
  
  到这里基本上把arguments对象给讲完了,不知还有其他的东西吗?其实很多东西我们都已经很熟悉了,除了上述的callee属性外,其他的我们都时不时在应用他们。OK,今天的对象学习就到这里了,明天要看的对象将是Boolean对象。
分享到:
评论

相关推荐

    js arguments对象应用介绍

    本文将详细介绍js arguments对象的使用方法,需要了解更多的朋友可以参考下

    arguments对象的使用

    在函数定义时没有形参名称时,向函数传递参数的使用方法。 实例演示了arguments对象的使用方法。

    javaScript arguments 对象使用介绍

    实际上,函数体内可以通过 arguments 对象来接收传递进来的参数。 代码如下: function box() { return arguments[0]+’ | ‘+arguments[1]; //得到每次参数的值 } alert&#40;box(1,2,3,4,5,6&#41;); //传递参数 ...

    javascript内置对象arguments详解

    所有主要的js函数库都利用了arguments对象。所以agruments对象对于javascript程序员来说是必需熟悉的。所有的函数都有属于自己的一个arguments对象,它包括了函所要调用的参数。他不是一个数组,如果用typeof ...

    Javascript中arguments对象的详解与使用方法

    ECMAScript中的函数并不介意传递的参数有多少,也不介意是什么类型。由于JavaScript允许函数有不定数目的参数,所以我们需要一种机制,可以在 函数体内 ...这篇文章将详细介绍Javascript中的arguments对象和使用方法。

    js中arguments对象的深入理解

    本文主要给大家介绍了关于js中arguments对象的相关内容,下面话不多说了,来一起看看详细的介绍吧 一、在函数调用的时候,浏览器每次都会传递进两个隐式参数 函数的上下文对象this 封装实参的对象arguments 二、...

    跟我学习javascript的arguments对象

    所有主要的js函数库都利用了arguments对象。所以agruments对象对于javascript程序员来说是必需熟悉的。在javascript函数体内,标识符arguments具有特殊含义。它是调用对象的一个特殊属性,用来引用Arguments对象。...

    Javascript中arguments对象详解

    在上篇文章中我们讨论了javascript中的默认参数,这篇文章,我们来讨论下javascript的arguments参数...幸运的是,javascript有一个arguments对象,可以来处理上述情况。arguments对象是一个类数组对象,想了解argume

    Javascript学习笔记之函数篇(四):arguments 对象

    JavaScript中arguments函数对象是该对象代表正在执行的函数和调用它的函数的参数。JavaScript 函数中 arguments 为特殊对象,无需明确指出参数名,就能访问它们。

    深入解析JavaScript中的arguments对象

    所有的函数都有一个自己的arguments对象,用来储存它实际接受到的参数,而不局限于函数声明时所定义的参数列表。它不是数组却类似数组,具有数组一样的访问性质及方式,可以由arguments[n]来访问对应的单个参数的值...

    Javascript中的arguments对象

    arguments对象:函数对象内,自动创建的专门接收所有参数值得类数组对象。 arguments[i]: 获得传入的下标为i的参数值 arguments.length: 获得传入的参数个数! 重载:  程序中可定义多个相同函数名,不同参数列表...

    JS函数动态传递参数的方法分析【基于arguments对象】

    js函数体内可以通过arguments对象来接收传递进来的参数,利用这一对象属性可以动态传参。 function box() { return arguments[0]+' | '+arguments[1]; //得到每次参数的值 } alert&#40;box(1,2,3,4,5,6&#41;); //...

    JavaScript中arguments和this对象用法分析

    js函数不介意定义多少参数,也不在乎传递进来多少参数,也就是说,即使定义的函数只接收2个参数,在调用时候也未必传递2个参数,因为js的函数参数在内部使用一个数组表示的,在函数体内可以通过arguments对象访问此...

    JavaScript的arguments对象应用示例

    arguments 对象 在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。 例如,在函数 sayHi() 中,第一个参数是 message。用 arguments[0] 也可以访问这个值,即第一个参数的值(第一个...

    JavaScript中如何通过arguments对象实现对象的重载

    js 中不存在函数的重载,但却可以通过arguments对象实现对象的重载,下面有个不错的示例,大家可以参考下

Global site tag (gtag.js) - Google Analytics