callee属性:
返回正被执行的Function对象,即指定的Function对象的正文.
语法:[function.]arguments.callee
参数: function
可选项.当前正在执行的Function对象的名称.
备注:
callee属性是arguments对象的一个成员,该属性仅当相关函数正在执行时才可用.
callee属性的初始值是正被执行的Function对象.这将允许匿名函数成为递归的.
说明:
arguments对象以快速模式(JS的默认模式)运行时不可用.若要从命令行编译使用argument对象的程序,则必须使用/fast-关闭快速选项.由于线程处理问题,在ASP.NET中关闭快速选项是不安全的.
示例:
function factorial(n) //在匿名方法且递归调用的情况下可以充分体现这个属性的强大功能
{
if(n<=0) return 1;
else
return n* arguments.callee(n-1);
}
print(factorial(6));
caller属性:
返回一个对函数的引用,该函数调用了当前函数.
语法:function.caller
参数:
function:必选.当前正在执行的Function对象的名称.
备注:
caller属性只有当函数正在执行时才被定义.如果函数是从JScript程序的顶层调用的,则caller包含null.
如果在字符串下文中使用caller属性,则其结果和functionName.toString相同,就是说,将显示函数的反编译文本.