日期:2014-05-16  浏览次数:20314 次

JS的Function和Arguments

javascript的Function
属性:
1、arguments[]
?(不推荐使用,视为不存在即可)
?一个参数组,元素是传递给函数的参数。
?注:使用Arguments对象代替
2、caller
?对调用单前函数的Function的引用,如果是顶层代码调用,
?则返回null(firefox返回undefined)。
?注:只有在代码执行时才有意义
3、length
?声明函数是指定的命名参数的个数(函数定义是,定义参数的个数)
4、prototype
?一个对象,用于构造函数,这个对象定义的属性和方法
?由构造函数创建的所有对象共享。
方法:
?applay() --> applay(this,[])
?call() --> call(this,可变参数)
?toString()


javascript的Arguments对象
Arguments对象只在函数体内定义,他是一个类数组(是对象不是数组,只是有数组的一些特性)。
说明:
当一个函数被调用的时候,会为该函数创建一个Arguments对象,
局部变量arguments会自动初始化并引用那个Arguments对象(arguments是Arguments对象的引用)

该对象的属性:
1、callee
?对当前正在执行的函数的引用
2、length
?传递给函数参数的个数(实际传递给函数参数的个数)


对函数Function原型prototype的一下说明:
当通过构造函数初始化一个对象的时候,
new关键字通过调用构造函数初始化这个对象,并把新的对象 作为this关键字的值 来传递,
与此同时,new关键字还设置了这个对象的原型,一个对象的原型就是它的构造函数的prototype属性的值
(例如:a = new Date(),a对象的原型就是Date.prototype)
所有的函数都有一个prototype属性,当这个函数【被定义】的时候,prototype属性会自动创建和初始化。
prototype属性的初始化值是一个对象,并且这个对象只有一个属性,这个属性是constructor,
它指回到和原型相关联的那个构造函数。

?