Задать вопрос
alex4answ
@alex4answ

Почему функция не замыкается?

Не могу понять, почему не замыкается функция?
https://jsfiddle.net/wvLzhxe4/
let x = 1;

function createSum(){
	return function(){
  	return x + 5;
  }
}

function foo(){
  let x = 5;
  return createSum()();
}

function bar(){
  let x = 50;
  return createSum()();
}

console.log(foo()); // 6
console.log(bar()); // 6


почему в bar не 55, ведь createSum должен брать переменную x из внешнего лекс окружения, но берет из глобального, почему?
  • Вопрос задан
  • 159 просмотров
Подписаться 1 Простой Комментировать
Ответ пользователя frontend queen К ответам на вопрос (3)
let x = 1;

function createSum(x){
  return x + 5;
}

function foo(){
  let x = 5;
  return createSum(x);
}

function bar(){
  let x = 50;
  return createSum(x);
}

console.log(foo());
console.log(bar());
Ответ написан