arguments对象

在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们

[function.]arguments[n]参数
function:选项。当前正在执行的 Function 对象的名字。 
n :选项。要传递给 Function 对象的从0开始的参数值索引。说明Arguments是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象。Arguments是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访问性质及方式,可以由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length。还有就是arguments对象存储的是实际传递给函数的参数,而不局限于函数声明所定义的参数列表,而且不能显式创建 arguments对象。arguments对象只有函数开始时才可用。

arguments不是真正的数组,可以转换成标准的数组并进行数组操作

var args=Array.prototype.slice.apply(arguments)

callee  

arguments.length是实参长度,arguments.callee.length是形参长度
caller
返回一个对函数的引用,该函数调用了当前函数。
    functionName.caller 
    functionName 对象是所执行函数的名称。
说明
对于函数来说,caller属性只有在函数执行时才有定义。如果函数是由顶层调用的,那么 caller包含的就是 null 。如果在字符串上下文中使用 caller属性,那么结果和 functionName.toString 一样,也就是说,显示的是函数的反编译文本,
注意:Function.toString() 可以实现 Function 的反编译功能.如加上递归功能则功能更加强大

posted @ 2016-09-22 17:37  blogging  阅读(94)  评论(0编辑  收藏  举报