内置对象 arguments 的分析与使用

W3C 中说明:

  ECMAScript arguments 对象

    可访问当前函数的参数,而无需指出参数名

  

  区别于其他程序设计语言,ECMAScript 不会验证传递给函数的参数个数是否等于函数定义的参数个数

    开发者定义的函数可以接受任意个数的参数(根据 NetScape 文档,最多可接受255个),而不会引发任何错误

      任何遗漏的参数将以 undefined 传递给函数

  可以模拟函数重载,如

  function doAdd() {
      if(arguments.length == 1) {
          alert(arguments[0]);
      } else if(arguments.length == 2) {
          alert(arguments[0] + arguments[1]);
      }
  }

arguments 是当前函数的内置属性,可以直接调用 arguments 而不需要写成 func.arguments

1、它的存储非常类似 Array,但不是 Array 的实例

2、arguments 对象的长度只由实参个数决定

  形参是在函数内部重新开辟内存空间存储,与 arguments 对象内存空间并不重叠

    对于值都存在的情况下,他们两者的值是同步的

3、JavaScript 函数是不能重载的

  1)函数声明没有返回值类型一说

  2) 形参个数严格意义上只是为了方便函数中的变量操作,实际上实参已经存储在 arguments 对象中

  3)函数其实也是对象,函数名只是关于函数的引用

  因此,通过 arguments 实现的只是重载的模拟

4、重要属性 callee

  返回此 arguments 对象所在的当前函数的引用

  应用:递归调用,如

function count(a) {
  if(a == 1) {
    return 1;
  } else {
    return a + arguments.callee(--a);
  }
}
时间: 2024-10-16 23:47:23

内置对象 arguments 的分析与使用的相关文章

javascript中的arguments内置对象

什么是arguments arguments 是是JavaScript里的一个内置对象,它很古怪,也经常被人所忽视,但实际上是很重要的.所有主要的js函数库都利用了arguments对象.所以agruments对象对于javascript程序员来说是必需熟悉的. 所有的函数都有属于自己的一个arguments对象,它包括了函所要调用的参数.他不是一个数组,如果用typeof arguments,返回的是'object'.虽然我们可以用调用数据的方法来调用arguments.比如length,还有

基本类型、引用类型、基本包装类型和单体内置对象

基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象.基本包装类型和单体内置对象都是特殊的引用类型. 一.基本类型 基本类型包含Undefined.Null.Boolean.Number.String 这5种.基本数据类型是按值访问的,因为可以操作保存在变量中的实际值. 基本类型保存在内存中的栈中,大小固定,复制其变量时会创建这个值的一个副本.用typeof方法可以确定一个值是哪种基本类型. 二.引用类型 引用类型包括Object .Array.  Date.  RegExp.

高程5.7单体内置对象 5.8小结

内置对象的定义:由ECMAScript实现提供的, 不依赖于鹤环境的对象,这些对象在ECMAScript程序执行之前就已经存在了. 开发人员不必显式地实例化内置对象,因为它们已经实例化了. 前面介绍了大多数内置对象,如Object,Array和String.ECMA-262还定义了两个单体内置对象:Global和Math. 5.7.1 Global对象 没有全局变量或全局函数;所有在全局作用域中定义的属性和函数,都是Global(全局)对象的属性. 诸如isNaN(),isFinite(),pa

webform(六)内置对象 跨页面传值

内置对象跨页面传值有六种:Request,Response,Session,Cookie,Application,VIewState. 一.Request和ResponseRequest request请求对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息.客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后通过request对象的相关方法来获取这些数据.request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项.response 响应对象在

ASP.NET内置对象(转)

asp.net学习笔记,在网上找了比较全的总结.转自:http://www.cnblogs.com/MyBeN/archive/2011/03/23/1992591.html ASP.NET中常用的内置对象(一) ASP.NET中常用的内置对象及功能说明如下所示:对 象 名 功  能  说  明Page 用于操作整个页面Response 用于向浏览器输出信息Request 用于获取来自浏览器的信息Server                    提供服务器端的一些属性和方法Applicatio

javaScript知识体系(中)- DOM、BOM、其它内置对象

1. DOM基本概念 1.1 DOM DOM Document Object Model 文档对象模型     就是把HTML文档模型化,当作对象来处理     DOM提供的一系列属性和方法可以视作一个工具箱,极大地方便了我们对文档的处理. 1.2 内容概念 文档(Document):就是指HTML或者XML文件     节点(Node):HTML文档中的所有内容都可以称之为节点,常见的节点有         元素节点 属性节点 文本节点 注释节点     元素(Element)        

js内置对象总结

在js里,一切皆为或者皆可以被用作对象.可通过new一个对象或者直接以字面量形式创建变量(如var i="aaa"),所有变量都有对象的性质. 注意:通过字面量创建的对象在调用属性和方法时会被对象包装器暂时包装成一个对象,具有对象的性质.如 var str="我不是一个真的对象"; alert(str.length);     //str被暂时包装成一个String对象,可调用该对象的属性和方法 不过这并不意味着它就是一个对象了,typeof(i)的值为仍Strin

对象的内置对象

内置对象 1.js中已经定义好的对象,创建之后可以直接使用 2.内置对象:Date.Math.Regexp(正侧表达式).Error.String.Number 3.内置对象主要学习:API(就是对象的方法),H5的方法 4.学习内置对象侧重点 a)调用者:有无调用者 b)参数:有无,几个 c)功能:干什么用 d)返回值:有无,什么类型 5.API:应用程序接口 内置对象-数组-API   1.数组是引用类型-引用js内置对象 2.检查数组方法 a) instanceof():检测是否是数据类型

函数中内置对象

函数的3大内置对象,在这里只写了2个,其中一个比较重要,而且在工作中很多人搞不懂,this到底代表谁.所以我单独写出来了 函数中内置的三大对象 1.arguments对象 2.环境变量对象 3.this对象 arguments对象 用于保存实参(它只存在于函数中,函数外不能调用,具有数组所有的功能,但它不是数组) arguments对象通过索引值来访问保存在其中的实参值 <script type="text/javascript"> function show(a,b){