Учу ecma 5.
и как я понял тема функций и замыканий считай основа всего JS , все построено на нем.
Подскажите плиз...
Код:
Результат:
Обычные функции после того как отработают всегда отчищают свои локальные переменные(отработал - почистил, отработал почистил), но в моем примере( у функции incCounter) такой очистки не произошло.
Как я понял это называется замыканием?
Как видим 7 и 8 строчка используют переменную своего родителя.
1)Если функция-ребенок использует что-то от своего родителя, и не важно читает она это значение или записывает всегда будет происходить замыкание.
2)Замыкание это такое явление когда значения локальных переменных родителя не отчищаются и они будут существовать вечно, до тех пор пока ребенок перестанет за них "хвататься".
3) если ребенок существует , но он не хватается за переменные папаши , то замыкания не будет.
4) Под "хвататься" я имел ввиду: "считывать значение переменной своего папаша" и "изменять значение переменной своего папаши"
Может кто вкратце объяснить в каких условиях создаются замыкания.
Если сынок произведет любую манипуляцию с переменной папаши(меняет ее, считывает, смотрит ее тип) то это замыкание, так?
Если сынок сидит спокойно, то замыкания не будет.
Правильно ли я понял?