Кэшируются ли объявления локальных функций?

function A() {
     function B() {
          ...
     }        
     B();
}

Является ли функция B созданной каждый раз, когда вызывается A , или для нее есть какое-то кеширование. Разве не сделать его локальным, например:

function A() {
    B();
}
function B() {
    ...
}

Значительное улучшение производительности?

Допустимо ли делать это как выбор стиля? ( B в данном случае является просто вспомогательной функцией для A .) Или следует отдать предпочтение второй для скорости?

Следует ли использовать этот стиль или избегать его для удобства чтения?

Benchmark .

Похоже на FF4 inlines B для локального случая и устраняет накладные расходы на вызов функции.

А как насчет других браузеров?

7
задан Raynos 24 March 2011 в 14:53
поделиться