@alexbog90

Как исправить код, если пропадает значение переменной после завершения функции?

// setting new final score
function settingFinalScore() {
  newFinalScore = +prompt("Please set new Final Score", 100);
  finalScore = newFinalScore;
  alert(newFinalScore);  
  alert(finalScore);
}


Ввожу значение newFinalScore после появления окна prompt, два alert показывают его. Но после завершения этой функции если в консоли прописать newFinalScore или finalScore значениями будет undefined.
Как мне использовать переменную FinalScore и дальше? Спасибо
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 4
@McBernar
Вынести объявление переменной finalScore за пределы функции.
Тогда функция будет записывать новые значения в нее.
Ответ написан
@nslim13
Наверное вот так:
var finalScore = null;
// setting new final score
function settingFinalScore() {
  let newFinalScore = +prompt("Please set new Final Score", 100);
  finalScore = newFinalScore;
  alert(newFinalScore);  
  alert(finalScore);
}
Ответ написан
Комментировать
@historydev Куратор тега JavaScript
Острая аллергия на анимешников
https://jsfiddle.net/qvo1sh06/4/
let newFinalScore,finalScore
const settingFinalScore = () => {
  newFinalScore = prompt("Please set new Final Score", 100)
  finalScore = newFinalScore
  alert(finalScore)
}

settingFinalScore()
Ответ написан
Комментировать
Подобное лучше делать через замыкание.
function settingFinalScore() {
  let score = 0;
  return () => {
    score += Math.ceil(prompt('Please set new Final Score', 100));
    return score;
  }
}

const updateFinalScore = settingFinalScore();
const score = updateFinalScore();
console.log(score);

Пример
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы