Задать вопрос
Ingernirated
@Ingernirated
Романыч

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

Аргумент х изначально меньше 300, но получив значение > 300, выполнит функцию, как сделать так, чтобы он мог её выполнить только один раз и последующие значения, когда он станет меньше 300 и снова потом получит > 300, уже ничего не выполнял?
function show() {
	if (x > 300) {
		console.log(300);
	}
}
  • Вопрос задан
  • 536 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Stepik
    JavaScript с нуля - основы языка и практика для начинающих
    2 недели
    Далее
  • Merion Academy
    Фронтенд-разработчик с нуля
    4 месяца
    Далее
  • Skypro
    JavaScript-разработчик с нуля
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Решения вопроса 2
spbdimka
@spbdimka
Эникей
ввести еще одну переменную и ее проверку.
после достижения 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();
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@tnnmi
можно так:
function show() {
if (x > 300) {
console.log(300);
show=function(){};
}
}
Ответ написан
Ваш ответ на вопрос

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

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