2015-02-11 52 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。由於你有一個局部變量,變量external scope(閉包)將不被訪問。

$("#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]); 
});