一个被压缩的行数很多的js代码,我想分析某个函数的被调用的过程,有没有方法可以在函数里面alert输出他的调用者的名称,然后在调用者里用同样的方法输出调用者的调用者,一直到顶部。函数是对象里的一个成员,形式如下
var A={
 var f1=function(){
   ...
 },
 var f2=function(){
   ...
 }
}
我知道有一个叫call的成员,但是alert(this.caller)总输出undefine,可是这个函数明显不是在顶部被调用的。javascriptfunction对象压缩

解决方案 »

  1.   

     
    比如看 f1 谁调用 了var f1=function(){
         f1.caller 
     },
      

  2.   

    var A={
     f1:function(){
       ...
       alert(arguments.calee.caller);
     },
     f2:function(){
       ...
     }
    }
      

  3.   

    arguments.callee.caller可以得到函数的调用者函数的引用,
    却不可能得到存放调用者函数的变量(属性)的名称
    当然用.toString()方法在有些浏览器中可以得到函数的源代码,能从中找到函数的名称(如果函数有名称的话)
      

  4.   

    firebug堆栈设置断点,查看调用堆栈