Javascript变量范围问题

时间:2011-09-12 03:18:50

标签: javascript scope object-literal

我在对象文字中引用全局变量时遇到问题:

function f() {
    globalVar = "test";
}

$(document).ready(function() {
    f();
    var a = $("#id").autocomplete({ 
        lookup: globalVar //says globalVar is undefined
    });
    $("#button").click(function() {
        alert(globalVar); //works
    });
});

如何将lookup的值设置为globalVar?

2 个答案:

答案 0 :(得分:1)

你可以在所有这样的函数之外定义它;

var globalVar ;

function f() {
    globalVar = "test";
}

$(document).ready(function() {
    f();
    alert(globalVar); //works
    var a = $("#id").autocomplete({ 
        lookup: globalVar 
    });
});

答案 1 :(得分:0)

没有理由不起作用,或者与误解如何使用自动完成功能或函数本身存在问题有关。但是应该分配全局,并且没有问题以这种方式将全局分配给对象。无论哪种方式,没有更多的代码(即自动完成功能),都无法说出问题所在。