Ingernirated
@Ingernirated
Романыч

Как задать только единоразовое выполнение функции?

Аргумент х изначально меньше 300, но получив значение > 300, выполнит функцию, как сделать так, чтобы он мог её выполнить только один раз и последующие значения, когда он станет меньше 300 и снова потом получит > 300, уже ничего не выполнял?
function show() {
	if (x > 300) {
		console.log(300);
	}
}
  • Вопрос задан
  • 522 просмотра
Пригласить эксперта
Ответы на вопрос 4
EnterSandman
@EnterSandman
Эникей
ввести еще одну переменную и ее проверку.
после достижения 300 ставите y=1 и проверяете чтобы она всегда была равна нулю
Ответ написан
Комментировать
@necadeus
Возможно, стоит применить следующий подход:
function createShow() {
 //Создаем замыкание, в котором храним флаг, показывающий была ли вызвана 
 //функция
  var itNotTriggered = true;

  return function() {

    //Добавляем флаг в условие для вызова
    if (x > 300 && itNotTriggered) {
     //Делаем полезную нагрузку 
      console.log(300);

     //Запрещаем дальнейший вызов функции.
      itNotTriggered = false;

    }
  }
}

//Cоздаем функцию show как Function Expression
var show = createShow();
Ответ написан
@tnnmi
можно так:
function show() {
if (x > 300) {
console.log(300);
show=function(){};
}
}
Ответ написан
Ваш ответ на вопрос

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

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