读书人

arguments.callee 调用本身

发布时间: 2012-07-02 17:46:22 作者: rapoo

arguments.callee 调用自身

一、Arguments

该对象代表正在执行的函数和调用他的函数的参数。

[function.]arguments[n]

参数function :选项。当前正在执行的 Function 对象的名字。

n :选项。要传递给 Function 对象的从0开始的参数值索引。

说明:Arguments是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象。

Arguments是个类似数组但不是数组的对象,说他类似数组是因为其具备数组相同的访问性质及方式,能够由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length。还有就是arguments对象存储的是实际 传递给函数的参数,而不局限于函数声明所定义的参数列表,而且不能显式创建 arguments 对象。

在此添加了一个说明arguments不是数组(Array类)的代码:

?

?

?

上面的例子能够看出,通过call之后,extend能够继承到base的方法和属性。

顺便提一下,在javascript框架prototype里就使用apply来创建一个定义类的模式,

其实现代码如下:

?

var Class = {    create: function() {        return function() {            this.initialize.apply(this, arguments);        }    }}
?

?

解析:从代码看,该对象仅包含一个方法:Create,其返回一个函数,即类。但这也同时是类的构造函数,其中调用initialize,而这个方法是在类创建时定义的初始化函数。通过如此途径,就能够实现prototype中的类创建模式

?

读书人网 >Web前端

热点推荐