@KirillEX

Вопрос про замыкание js?

Я вызываю функцию в контексте другой функции. Я не пойму это же не замыкание или все-таки оно?
function wrapper(func) {
	let map = new Map();
	return function(x) {
		let result = func.apply(this, [x]);
		if (map.has(x)) {
			logResult(result, "factorial")
			return map.get(x);
		};
		map.set(x, result);
		logResult(result, "factorial")
		return result;
	}
};
function logResult(funcResult, funcName) {
	console.log(`Результат ${funcName}: ${funcResult}`);
}
fac = wrapper(fac);
fac(5)
  • Вопрос задан
  • 307 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Замыкание — это комбинация функции и лексического окружения, в котором эта функция была определена. Другими словами, замыкание дает вам доступ к Scope внешней функции из внутренней функции. В JavaScript замыкания создаются каждый раз при созданиии функции, во время ее создания.

© https://developer.mozilla.org/ru/docs/Web/JavaScri...

9CUY1M9.png
Вот тут у вас обращение к внешней переменной - значит замыкание вы используете.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы