Вложенные вспомогательные функции могут быть полезны для того, чтобы сделать код более понятным. Google даже рекомендует использовать вложенные функции в своих style guide. Я задаюсь вопросом о создании этих вложенных функций и производительности. Например,Вложенные вспомогательные функции и производительность
work(1);
work(2);
function work(a) {
// do some stuff
log();
// do some more stuff
function log() {
console.log(a);
}
}
work
инстанциируется один раз, но log
экземпляр дважды?
Если log
был создан при каждом запуске work
, было ли вообще рекомендовано не гнездовать функции? Вместо этого напишите код следующим образом:
work(1);
work(2);
function work(a) {
// do some stuff
log(a);
// do some more stuff
}
function log(a) {
console.log(a);
}
Эти примеры чересчур тривиальны, и вопрос касается общего случая.
Я понимаю, что это микро-оптимизация. Я начал задумываться об этом, потому что в моем случае эти вложенные функции определены в обработчиках запросов для http-сервера, где их экземпляры будут происходить десятки тысяч раз в секунду. Благодаря! – Tom