Показать сообщение отдельно
  #7 (permalink)  
Старый 08.09.2016, 16:44
Аспирант
Отправить личное сообщение для moron Посмотреть профиль Найти все сообщения от moron
 
Регистрация: 29.07.2012
Сообщений: 49

Не совсем понимаю автора. Чтобы понять замыкание необходимо понять, что у функцией есть scope и формируется он при создании функции. Отсюда возможны замыкания:
function carryAdd(a, b){
  //анонимная функция при своем создании
  //знает значение a и замыкает его.
  //поэтому переменная a доступна внутри :c
  return function(b){
    return a+b
  }
}
foo = carryAdd(5);
foo(10)// 15
foo(5)//10

С помощью замыканий можно реализовать инкапсулирование переменных. Т.е когда переменная находится внутри обьекта, а доступ и изменение осуществляется с помощью геттеров\сеттеров

Последний раз редактировалось moron, 08.09.2016 в 16:46.
Ответить с цитированием