Callstack основного раздела производительности показывает функцию, вызывающую себя, но функция не является рекурсивной - PullRequest
0 голосов
/ 21 октября 2018

Я написал бессмысленную программу на JavaScript для изучения работы вкладки DevTools Performance.В моей программе нет рекурсии, однако в разделе «Основная» показано, что функция test2 вызывает сама себя, см. Скриншот:

enter image description here

Что это значит?Моя функция разделена на две части?Или это означает, что в отчете есть неточности по дизайну?

Вот программа:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...