История изменений
Исправление alysnix, (текущая версия) :
f = () => {
var x = 3; return () => x;
}
a = f()();
это плохой пример. ни о чем.
напиши другой пример. функция возвращает два замыкания на локальную переменную. первое туда пишет число, вторая оттуда читает число.
сначала этими замыканиями запиши туда 100, потом прочитай, что будет.
формально эта локальная переменная уже умерла, если фрейм не отцепили, как я выше описывал. если он отцеплен и живет, будет прочитано 100.
Исходная версия alysnix, :
f = () => {
var x = 3; return () => x;
}
a = f()();
это плохой пример. ни о чем.
напиши другой пример. функция возвращает два замыкания на локальную переменную. первое туда пишет число, вторая оттуда читает число.
сначала этими замыканиями запиши туда 100, потом прочитай, что будет.
формально эта локальная переменная уже умерла, если стек не отцепили, как я выше описывал. если он отцеплен и живет, будет прочитано 100.