从"var somthing ="定义的函数中获取变量值

Jav*_*lyn 1 jquery var jquery-ui function

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

var select = function( event, ui ) {
        var somevariable = 4;
    }
Run Code Online (Sandbox Code Playgroud)

如何获得var somevariable =此功能以外的值?

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

var somevariable;
var select = function( event, ui ) {
        var somevariable = 4;
    }
Run Code Online (Sandbox Code Playgroud)

在此代码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;

    }
});
Run Code Online (Sandbox Code Playgroud)

在这种情况下,open:触发事件时,不会检索该值source:

Joh*_*rak 6

也许这就是你想要的?

var somevariable;
var select = function( event, ui ) {
    somevariable = 4;
}
Run Code Online (Sandbox Code Playgroud)

通过不在var第3行,而不是在内部的新变量select,somevariable现在引用在第1行声明的变量.

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


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

var somevariable;
function select(event, ui) {
  somevariable = 4
};
Run Code Online (Sandbox Code Playgroud)

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