arguments对象的callee属性和caller属性

Posted 寻找薛定谔的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arguments对象的callee属性和caller属性相关的知识,希望对你有一定的参考价值。

js中的arguments对象代表正在执行的函数和调用它的函数的参数。arguments对象有两个属性,callee和caller。collee表示当前正在执行的方法,caller表示调用该方法的对象,如果函数是顶层调用的,则caller值为null。这两个属性可以用在以下情形:

1、方法的链式调用

(function(o){
    alert(o);
    return arguments.callee;
})("第一次调用")("第二次调用")("第三次调用");

2、递归调用

var result = (function(n) {
                if (n <=1)
              return 1;
                 else
               return n + arguments.callee(n - 1);
              })(100);
alert(result);

3、获取方法信息

var func = function(){
      //打印方法体
      alert(arguments.callee);
      //打印方法名 func
      alert(arguments.callee.name);
      //打印调用方法体
      alert(arguments.callee.caller);
      //打印调用方法名 callfunc
       alert(arguments.callee.caller.name);
};

function callfunc(){
       func();
}

callfunc();

 

点击查看运行效果

以上是关于arguments对象的callee属性和caller属性的主要内容,如果未能解决你的问题,请参考以下文章

理解JavaScript的caller,callee,call,apply

arguments对象的callee属性和caller属性

callee(),call(),apply()方法的使用

JS学习之函数内部属性和方法

arguments.callee

function 之 arguments call apply