我写了一个无意义的JavaScript程序来研究“ DevTools性能”选项卡的工作方式。我的程序没有任何递归,但是主要部分显示函数test2
会自行调用,请参见屏幕截图:
那是什么意思?我的职能在内部被一分为二吗?还是说报表设计有误?
这是程序:
<p><a id="test1" href="#">Do stuff</a></p>
<script>
function test1(e) {
console.time('test1');
var foo = [];
for (var i = 1; i <= 1000; i++) {
test2(foo, i);
}
console.timeEnd('test1');
}
function test2(foo, i) {
for (var j = 1; j <= 100000; j++) {
if (i * j % 211 === 0) {
test3(foo);
}
else {
foo.push(i * i - i);
}
}
}
var k = 0;
function test3(foo) {
if (k++ % 1733 === 0) {
console.count('test3');
}
foo = [];
}
document.getElementById('test1').addEventListener('click', test1);
</script>