arguments对象的callee属性

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相同,就是说,将显示函数的反编译文本.

        

原文地址:https://www.cnblogs.com/pxsbest/p/Pinary.html