Как я могу использовать переменную функции в другой функции в javascript? - PullRequest
0 голосов
/ 11 апреля 2020

Как я могу использовать локальную переменную randomNum, объявленную в первой функции во второй функции?

btn.click(function() {
  var randomNum = Math.floor(Math.random() * (3-0)) + 0;
})

rock.click(function() {
  // i want to use `randomNum` variable from the above function
});

Ответы [ 2 ]

1 голос
/ 11 апреля 2020

Самый простой способ - объявить переменную вне функции, поэтому она будет находиться в области действия обеих функций

Хотя помните, randomNum будет равно undefined до тех пор, пока не будет запущено btn.click().

См. Этот пример JSFiddle: https://jsfiddle.net/Lo8c2mrq/

var randomNum

btn.click(function(){
  randomNum = Math.floor(Math.random() * (3-0)) + 0;
})

rock.click(function(){
  console.log(randomNum) // undefined, or the number that was assigned from btn click
});
0 голосов
/ 12 апреля 2020

Вы можете создать отдельную функцию getRandomNum(), поэтому вы будете более гибкими в случае, если вы захотите изменить значение randomNum в будущем. Глобальные переменные плохие в большинстве случаев, так как будет трудно отследить, какая функция или часть кода действительно их изменяет.

var getRandomNum = function () {
  // set randomNum once
  if (typeof this.randomNum === 'undefined') {
    this.randomNum = Math.floor(Math.random() * (3 - 0)) + 0;
  }
  return this.randomNum;
};

btn.click(function () {
  var randomNum = getRandomNum();
})

rock.click(function () {
  console.log(getRandomNum());
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...