Задать вопрос
Nikulio
@Nikulio
NaN !== NaN

Почему в данном примере результат замыкания 5, а не 6?

Всем привет!
Вот пример :

function makeCounter() {
	var currentCount = 1;
	
	function counter() {
		return currentCount++;
	}
	
	counter.set = function(value) {
		currentCount = value;
	};
	
	counter.reset = function() {
		currentCount = 1;
	};
	
	return counter;
}

var counter = makeCounter();

counter.set(5);

console.log(`counter --- `, counter()); // почему тут 5, а не 6?


Почему при выводе получим 5, а не 6?
  • Вопрос задан
  • 293 просмотра
Подписаться 3 Простой Комментировать
Решение пользователя Demian Smith К ответам на вопрос (2)
search
@search
мама говорит что я особенный
Если хотите чтоб функция counter() увеличила currentCount перед выводом, то можно делать

return ++currentCount

Хозяйке на заметку: оператор ++ считается антипаттерном и на уважающих себя проектах отключён на уровне линтера.
Ответ написан
Комментировать