寻找薛定谔的猫

导航

 

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();

 

点击查看运行效果

posted on 2017-07-27 16:50  teagueli  阅读(260)  评论(0编辑  收藏  举报