Вопрос о закрытии JS.У меня есть красные определения и примеры этого, и я считаю, что я достаточно хорошо понимаю механизм.Итак, вопрос о конкретной вещи, которую я не понимаю.Пожалуйста, рассмотрите следующие два кода.Код 1:
function a(){
let x = 5;
return function b(y){
x=x+y;
return x;
};
}
let c = a();
let d = c(3);
let e = c(4);
console.log(d); // logs 8
console.log(e); // logs 12
Код 2:
function a(){
let x = 5;
return function b(y){
x=x+y;
return x;
};
}
let d = a()(3);
let e = a()(4);
console.log(d); //logs 8
console.log(e); //logs 9
Вопрос: В коде 1 x
изменяется его значение, и новое значение сохраняется в замыкании.В коде 2 x
изменяется его значение и новое значение не сохраняется.Почему это так?