var name = function(n) {
var digits = ['one','two','three','four'];
return digits[n];
}
var namenew = (function() {
digits = ['one','two','three','four'];
return function(n) {
return digits[n];
}
}());
Обе версии дают одинаковый результат, однако говорят, что вторая версия намного быстрее, чем первая версия.
Как я понимаю, первая версия выполняет функцию каждый раз, тогда как вторая версия сохраняет результат выполнения. Это то, что меня смущает как функциональную / обычную Программист OOPS.
Как можно сохранить функцию с ее внутренним контекстом? Что происходит под капотом? Может кто-нибудь уточнить?