为什么Arguments.callee.caller为null?

时间:2015-07-21 21:59:48

标签: javascript ecmascript-5

几天前我在谷歌Chrome 40版本上测试我的应用程序。我有一个客户端错误记录系统,它通过循环参数.callee生成堆栈跟踪。通过这样做我生成堆栈跟踪。

stackTrace = function(){
    var currFunc = arguments.callee;
    var j =0;
    var listTrace =[], fn;
    while (currFunc && listTrace.length < 20) {
            //Limit stack track to 20 functions
            fn = currFunc.toString();
            listTrace[j++] = fn;
            currFunc = currFunc.caller;
    }
    return listTrace;
};

仅在今天才将我的Chrome更新为44版本,现在问题是我无法获得堆栈跟踪。我调试找出原因并看到argument.callee.caller为null。我不知道为什么,但我读到JS绑定函数可以导致这个。不过不知道。我该如何解决这个问题?是否有其他方式可以获得来电者?

0 个答案:

没有答案