Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript console.trace()的压缩版本_Javascript_Stack Overflow_Stack Trace - Fatal编程技术网

Javascript console.trace()的压缩版本

Javascript console.trace()的压缩版本,javascript,stack-overflow,stack-trace,Javascript,Stack Overflow,Stack Trace,JavaScript(浏览器):我想知道堆栈有多深。基本上,我想知道如果调用console.trace(),将打印多少行。但我不想调用console.trace()(然后在控制台窗口中计算行数),我只想在一个变量中“拥有”这样的行数,然后将其存储以获得某种性能统计数据。这里有一个例子 功能堆栈测试(限制){ this.inc=-1; 这个极限=极限; } StackTest.prototype.test=功能(n){ //控制台日志(n); 如果(n>此限制){ console.trace()

JavaScript(浏览器):我想知道堆栈有多深。基本上,我想知道如果调用
console.trace()
,将打印多少行。但我不想调用
console.trace()
(然后在控制台窗口中计算行数),我只想在一个变量中“拥有”这样的行数,然后将其存储以获得某种性能统计数据。这里有一个例子

功能堆栈测试(限制){
this.inc=-1;
这个极限=极限;
}
StackTest.prototype.test=功能(n){
//控制台日志(n);
如果(n>此限制){
console.trace();
返回[n,this.inc];
}
本公司+=2;
返回此.test(n+this.inc);
}
test899=新的堆栈测试(899);

document.body.innerHTML=test899.test(0)还有一件不起作用的事情:在循环中使用“老式的”
参数.callee.caller
东西。如果相同的函数在堆栈跟踪中出现两次,那么您将在链中再次获得完全相同的函数(
==
),而不是表示函数(和不同参数)的某个对象。因此,如果您正在执行while循环,直到
.caller.caller.caller.caller….
给出null,这将给您一个无限循环。我认为没有办法。这是您的代码不能也不应该访问的东西(函数不应该依赖于调用它们的内容)。。。你必须坚持使用柜台。相关的:相关的:我同意这些。然而,我仍然认为没有办法。(我假设
newerror().stack
和类似的存在是为了向开发人员提供有意义的信息,而不是在应用疯狂的正则表达式后被程序使用……)