1. 程式人生 > >arguments對象的callee屬性和caller屬性

arguments對象的callee屬性和caller屬性

獲取 call 兩個 cal 屬性 參數 cnblogs () lee

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屬性