这是 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:
事件时,source:
不会检索该值
最佳答案
也许这就是你想要的?
var somevariable;
var select = function( event, ui ) {
somevariable = 4;
}
由于第 3 行没有 var
,somevariable
现在引用了该行声明的变量,而不是成为 select
内的新变量1.
如果一个变量在函数内部被声明为局部变量,则不能从函数外部访问它(但可以从该函数内声明的函数访问它,并且它的值可以像往常一样传递)。事实上,它不能是一个非常强大的功能,它可以作为在 Javascript 中创建私有(private)作用域的一种手段。
<小时/>此外,请考虑通过函数声明来声明您的方法:
var somevariable;
function select(event, ui) {
somevariable = 4
};
(优点:稍微短一些,提升到顶部——你可以在你定义的地方上方调用它;缺点:稍微不太直观,可以被视为一等公民)。
关于jquery - 从 "var somthing ="定义的函数内部获取外部变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14820285/