JavaScript получает доступ к переменным из другой функции

#javascript

#javascript

Вопрос:

У меня есть текущий код:

  QuestionID = 0;
 var score1 = 0;
 var score2 = 0;

 function clickanswer(answer) { 
    QuestionID  ;
    if (QuestionID <= 50) {
        if (QuestionID == 2 || QuestionID == 5) {
            score1 = score1   answer;}
        if (QuestionID == 4 || QuestionID == 7) {
            score2 = score2   answer; }
    }
}
function useScores(){
   var data1 = score1;
   var data2 = score2; }
  

Clickanswer(ответ) — это функция события onlick от кнопки.
Как я могу использовать переменные score1 и score2 из функции clickanswer (answer) в функции useScores()?
Спасибо.

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

1. сначала вызовите click answer(вызов из useScores() ), затем вы можете использовать переменные score1 и score2

2. поскольку вы определили score1 и score2 поверх обеих функций, вы можете использовать их в обеих функциях.

3. score1 и score2 являются глобальными переменными, поэтому их можно использовать во всех функциях.

4.Вы уверены, что хотите увеличить, QuestionID прежде чем решать, как должны вычисляться оценки? Для меня это выглядит глючно.

5. Передайте их в качестве параметров.

Ответ №1:

Не уверен на 100%, что вы имеете в виду. Но я думаю, что это один из этих 2.

  1. Просто вызовите useScores() функцию в нижней части вашей clickanswer() функции. Поскольку score1 и score2 являются глобальными переменными, они оба будут использоваться в функции. Например.

     function clickanswer(answer) { 
        QuestionID  ;
        if (QuestionID <= 50) {
            if (QuestionID == 2 || QuestionID == 5) {
                score1 = score1   answer;}
            if (QuestionID == 4 || QuestionID == 7) {
                score2 = score2   answer; }
        }
        useScores();
    }
      
  2. Или же вы хотите передать переменные в useScores() функцию. В этом случае что-то вроде этого может быть тем, что вы хотите.

     function clickanswer(answer) { 
        QuestionID  ;
        if (QuestionID <= 50) {
            if (QuestionID == 2 || QuestionID == 5) {
                score1 = score1   answer;}
            if (QuestionID == 4 || QuestionID == 7) {
                score2 = score2   answer; }
        }
        useScores(score1, score2);
    }
    
    function useScores(score_1, score_2){
        var data1 = score_1;
        var data2 = score_2;
    }
      

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

1. спасибо, Эндрю, решение 2 было тем, что мне было нужно, оно простое, но теперь я знаю, как это сделать.

2. @alex87 Круто. Рад, что смог помочь. 🙂