Я вряд ли верю, что эта «техника» ускоряет любое время выполнения. По крайней мере, не в реальном сценарии. Блог может быть прав насчет размера кода и Gzipping tho.
Во всяком случае, я не думаю, что какой-либо Javascript минимизация / компрессор сделает это много. Причина проста и очень очевидна в приведенном примере. Заменив вызов функции на фактический код функции, вы устанавливаете вещи в другом контексте. Это может оказаться очень злым. Что если родительская функция (-context) уже объявляет и использует переменную с именем foo . Если эта же переменная используется в другой функции, вы можете перезаписать ее и вызвать ошибки.
Еще хуже, если есть какое-то использование блоков try/catch
или eval
, которые создают дополнительный контекст с тщательно выраженной "динамической областью действия" (которая фактически недоступна в ecma-script) Однако в этом сценарии JIT или любая реализация Javascript практически ничего не может оптимизировать.