0
function randomSelect() {
  randomBeer.addEventListener('click', function() {
    var number = Math.floor(Math.random() * 8);
    popUp[number].style.visibility = 'visible';
    popUp[number].style.transform = 'scaleY(1)';
    return number;
  })
}


function closeRandomSelect() {
  var randSelNumb = randomSelect();
  console.log(randSelNumb);   
}

Как можно передать переменную number в функцию function closeRandomSelect()? Переменная number генерирует рандомное число, которое я хочу передать в другую функцию и продолжить с ним работу. Попытался вышеизложенным способом - не вышло.

  • Вопрос решил, но при помощи одной функции. Но ради интереса хотелось бы все-таки задействовать две функции и узнать, как это делается – Дима Шамаль Jan 20 '19 at 16:40

3 Answers3

0

Возможно создать еще 1 глобальную переменную, присвоить ей значение переменной number, и дальше уже работать с созданной переменной (в С++ так делаю) . Может в javascript по другому )

0

Первый вариант: (доработка вашего способа)

function randomSelect() {
  var number;

randomBeer.addEventListener('click', function() { number = Math.floor(Math.random() * 8); popUp[number].style.visibility = 'visible'; popUp[number].style.transform = 'scaleY(1)'; })

return number; }

function closeRandomSelect() { var randSelNumb = randomSelect(); console.log(randSelNumb); }

closeRandomSelect();

Но на самом деле, выходит что-то очень глупое, по-этому давайте попробуем сделать, красивее:

(Вы описали, что функция randomSelect() (далee randomValue) генерирует число, тогда для чего мы создаем обработчик событий? Не будем делать этого, а просто вернем число.)

function randomValue() {
  return Math.floor(Math.random() * 8);
}

function closeRandomSelect() { var randSelNumb = randomValue();

randomBeer.addEventListener('click', function() { popUp[randSelNumb].style.visibility = 'visible'; popUp[randSelNumb].style.transform = 'scaleY(1)'; })

console.log(randSelNumb); }

А также можно использовать вот такой способ передачи:

function randomValue() {
  return Math.floor(Math.random() * 8);
}

function closeRandomSelect(number) {

randomBeer.addEventListener('click', function() { popUp[number].style.visibility = 'visible'; popUp[number].style.transform = 'scaleY(1)'; })

console.log(number); }

// -------/------- closeRandomSelect(randomValue());

dmshm
  • 326
0
function randomSelect(callback) {
  randomBeer.addEventListener('click', function() {
    var number = Math.floor(Math.random() * 8);
    popUp[number].style.visibility = 'visible';
    popUp[number].style.transform = 'scaleY(1)';
    callback(number);
  })
}


function closeRandomSelect() {
  randomSelect(function(number){ 
    console.log(number);   
  });
}