Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 从“var somthing=”定义的函数中获取外部变量值_Jquery_Jquery Ui_Function_Var - Fatal编程技术网

Jquery 从“var somthing=”定义的函数中获取外部变量值

Jquery 从“var somthing=”定义的函数中获取外部变量值,jquery,jquery-ui,function,var,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 some

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

var select = function( event, ui ) {
        var somevariable = 4;
    }
如何获取此函数外部的var somevariable=的值

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

var somevariable;
var select = function( event, ui ) {
        var somevariable = 4;
    }
在此代码中,当var somevariable置于var select之前或之后时,它不会获得值“4”=

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

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

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

    },
    open: function( event, ui ) {

    somevariable = 5;

    }
});

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

也许这就是您想要的

var somevariable;
var select = function( event, ui ) {
    somevariable = 4;
}
由于第3行没有var,因此somevariable不再是select中的新变量,而是引用第1行声明的变量

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

也可以考虑通过函数声明声明方法:

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

优点:略短,提升到顶部-您可以在您定义的位置上方调用它;缺点:它可以被视为一等公民,这稍微不够直观。

也许这就是你想要的

var somevariable;
var select = function( event, ui ) {
    somevariable = 4;
}
由于第3行没有var,因此somevariable不再是select中的新变量,而是引用第1行声明的变量

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

也可以考虑通过函数声明声明方法:

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

优点:略短,提升到顶部-您可以在您定义的位置上方调用它;缺点:它可以被视为一等公民,这稍微不够直观。

如果不需要局部变量,请不要使用var。就是这样。你不能,它是一个局部变量,你必须公开它。这不是你的函数,所以你不能碰它?@JanDvorak-但是如果函数不是由变量定义的,就不能调用它。因为真正的函数不使用返回值。如果你不想要局部变量,就不要使用变量。就是这样。你不能,它是一个局部变量,你必须公开它。这不是你的函数,所以你不能碰它?@JanDvorak-但是如果函数不是由变量定义的,就不能调用它。因为实际函数不使用返回值。有没有其他方法可以在全局变量之外存储函数的值?有没有其他方法可以在全局变量之外存储函数的值?