= () => {
const num = { a: 1 };
return function (): number {
const b = num.a;
num.a = 2;
return b + 1;
};
};
console.log(test()()); // 2
почему ссылка теряется кто-то может объяснить?
Переменной num нет во внутренней функции, поэтому идём во внешнюю и ищем её там. Находим, забираем значение поля "а" = 1, затем добавляем к нему 1 - возвращаем 2. Думаю, если поменять первые две строчки во вложенной функции местами, то вернётся 3.
ну это понятно, а почему ссылка то пропала. мы присвоили переменной b ссылку? или как это работает
Нет, ты же читаешь значение из num.a, ссылку бы ты присвоил если бы объект там был, а у тебя там примит(число), оно присваивается к b по значению
Обсуждают сегодня