2015-02-11 3 views
0

Мне нужно получить доступ к переменной внутри вложенной функции следующим образом:Как получить доступ к переменной из встроенной функции?

$(function() { 

    var key = getRandomKey(dictionary); 
    resetInputRow(dictionary[key]); 

    $("#button").click(function() { 
     var answer = key; 

     // check if user input matches answer (the original key) 
     ... 

     // reset key for next check 
     var key = randomKey(dictionary); 
     resetInputRow(dictionary[key]); 
    }); 
}); 

До сих пор это не работает. Когда я проверяю значение answer, он не определен.

ответ

3

Это потому, что вы указали локальную переменную с именем key, потому что вы использовали var до var key = randomKey(current_dict); в обработчике кликов. Поскольку у вас есть локальная переменная, переменная внешняя область (закрытие) не будет доступна.

$("#button").click(function() { 
    var answer = key; 

    // check if user input matches answer (the original key) 
    ... 

    // reset key for next check 
    key = randomKey(dictionary); 
    resetInputRow(dictionary[key]); 
});