Как я могу вызвать функцию в функции?

#javascript #html

#javascript #HTML

Вопрос:

Я хочу, чтобы событие onclick приводило к уменьшению числа игроков, а затем проверяло, выиграл игрок или нет (число игроков == 3 или нет). Я не хочу помещать оператор if в событие onclick. Итак, как я могу это вызвать?

Пример:

HTML:

 <button onClick="myFunction()">button</button>
  

JS:

 let playerScore = 0;
function myFunction() {
 playerScore  ;
}
if (playerScore == 3) {
 console.log("win");
}
  

Комментарии:

1. Что ожидается и каков результат здесь?

2. Я думаю, вы ожидаете, что условие if будет выполняться при каждом нажатии кнопки?. интерпретатор вызывает условие if во время лексической фазы и при каждом нажатии кнопки вызывает функцию, а не условие if.

3. я хочу отобразить «win» в журнале conslone, если PlayerScore = 3, но не работает.

4. @sznajper Если вы не сделаете код частью своей функции, то он не будет выполняться при вызове функции. JavaScript не хранит список каждого if-оператора и проверяет их все при изменении любой переменной. Ваш if-оператор выполняется один раз в самом начале (сразу после того, как вы объявили свою переменную), и все.

5. @Ivar как я могу сделать так, чтобы оператор if всегда проверял переменную?

Ответ №1:

Вам нужно добавить это в функцию

 let playerScore = 0;
function myFunction() {
 playerScore  ;
if(playerScore == 3) {
 console.log("win");
}
}
  

Если вы хотите экспортировать оператор if, вы можете создать функцию и вызвать ее внутри первого

 let playerScore = 0;
function myFunction() {
 playerScore  ;
winner(playerScore);
}

function winner(playerScore){
if(playerScore == 3) {
 console.log("win");
}
}
  

Комментарии:

1. что мне следует делать, если я хочу переместить оператор if в другой js-файл?

2. Это зависит от того, что именно вы хотите сделать. Вы можете создать функцию и вызвать ее во втором файле js. Я добавил в ответ

Ответ №2:

if-statement Должно быть в функции, а переменная написана с ошибкой:

 let playerScore = 0;
function myFunction() {
 playerScore  ;
 if (playerScore == 3) {
  console.log("win");
 }
}  
 <button onClick="myFunction()">button</button>  

Комментарии:

1.что мне следует делать, если я хочу переместить оператор if в другой js-файл?

2. Вам нужно объяснить больше. Вы хотите сохранить это в функции и повторно использовать условие в другом месте?

Ответ №3:

У вас была опечатка в playerscore, и if должно было быть в функции.

 let playerScore = 0;
function myFunction() {
  playerScore  ;

  if (playerScore == 3) {
    console.log("win");
  }
}  
 <button onClick="myFunction()">button</button>  

Комментарии:

1. что мне следует делать, если я хочу переместить оператор if в другой js-файл?