Я знаю, что вы должны слегка проступать при выполнении рекурсивных вызовов функций в JavaScript, потому что ваш второй вызов может быть в 10 раз медленнее.
Есть одна важная проблема: во многих реализациях JavaScript эта вторая версия примерно в 10 раз медленнее первой. В JavaScript запуск простого цикла намного дешевле, чем вызов функции несколько раз.
Джон Ресиг даже говорит, что это проблема в этой публикации.
Мой вопрос: почему так неэффективно использовать рекурсию? Это просто способ создания конкретного двигателя? Мы когда-нибудь увидим время в JavaScript, где это не так?