从“var something =”定义的函数中获取变量值

时间:2013-02-11 20:28:58

标签: jquery jquery-ui function var

这是jQuery UI小部件和插件中使用的函数 -

var select = function( event, ui ) {
        var somevariable = 4;
    }

如何在此函数之外获取var somevariable =的值?

将它用作全局变量并不起作用:

var somevariable;
var select = function( event, ui ) {
        var somevariable = 4;
    }

在此代码var somevariable中没有获得值' 4'当它放在var select =

之前或之后

编辑:为了使其更加详细,我想在另一个函数中使用此变量,如下面的jQuery UI插件:

  $( "#id" ).autocomplete({
    minLength: 0,
    source: function( request, response ) {

        if (somevariable == 5)
        {
        //do something
        }

    },
    open: function( event, ui ) {

    somevariable = 5;

    }
});

在这种情况下,当触发open:事件时,source:无法检索到该值

1 个答案:

答案 0 :(得分:6)

也许这就是你想要的?

var somevariable;
var select = function( event, ui ) {
    somevariable = 4;
}

第3行没有varselect现在引用第1行声明的变量,而不是somevariable内的新变量。

如果变量在函数内被声明为局部变量,则无法从函数外部访问它(但可以从该函数中声明的函数访问它,并且其值可以像往常一样传递)。事实上,它实际上不是一个非常强大的事实,它可以作为在Javascript中创建私有范围的手段。


另外,请考虑通过函数声明声明您的方法:

var somevariable;
function select(event, ui) {
  somevariable = 4
};

(好处:稍短,悬挂到顶部 - 你可以在你定义它的地方之上调用它;缺点:稍微不那么直观,它可以被视为一等公民)。