如何从嵌套函数中访问变量?

时间:2015-02-11 03:31:44

标签: javascript jquery

我需要从嵌套函数中访问变量,如下所示:

$(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的值时,它是未定义的。

1 个答案:

答案 0 :(得分: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]);
});