Показать сообщение отдельно
  #6 (permalink)  
Старый 27.10.2018, 00:13
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

function makeCounter() {
  let currentCount = 1;
  return function () {
    return currentCount++;
  };
}
тоже самое что
function makeCounter() {
  let currentCount = 1;
  function новаяФункцияСозданаяПриВызове_makeCounter() {
    return currentCount++;
  };
  return новаяФункцияСозданаяПриВызове_makeCounter
}
просто без лишних телодвижений.

Всё просто же:
function makeCounter() {
  let currentCount = 1;
  function новаяФункцияСозданаяПриВызове_makeCounter() {
    return currentCount++;
  };
  return новаяФункцияСозданаяПриВызове_makeCounter
}
let counter = makeCounter(); // counter = новаяФункцияСозданаяПриВызове_makeCounter
console.log(counter()); // console.log(новаяФункцияСозданаяПриВызове_makeCounter())

Функция, как и говорилось выше, в js ничем в сути своей не отличается от любого иного объекта. Её можно присвоить, вернуть из другой функции, создать и исполнить на ходу и.т.д. Ей даже можно присвоить собственные методы и свойства.)
__________________
29375, 35
Ответить с цитированием