Javascript 如何在JQuery中为父函数中的全局变量赋值
我试图在一个函数中设置一个全局变量的值,以便在另一个函数中可以访问它。这是我的密码。 我尝试了各种方法来定义变量,但它总是返回未定义的Javascript 如何在JQuery中为父函数中的全局变量赋值,javascript,jquery,variables,Javascript,Jquery,Variables,我试图在一个函数中设置一个全局变量的值,以便在另一个函数中可以访问它。这是我的密码。 我尝试了各种方法来定义变量,但它总是返回未定义的 “严格使用”; var MyTable=window.MyTable | |{}; MyTable.LoadTable=函数(){ var myglobalvar=''; var first=函数(){ myglobalvar=“foo”; // ... 退货延期//退货承诺 } var second=函数(){ var localvar=MyTable.Loa
“严格使用”;
var MyTable=window.MyTable | |{};
MyTable.LoadTable=函数(){
var myglobalvar='';
var first=函数(){
myglobalvar=“foo”;
// ...
退货延期//退货承诺
}
var second=函数(){
var localvar=MyTable.LoadTable.first()//返回延迟
$.when.apply(null,localvar).done(函数()){
警报(myglobalvar)//我预期为'foo',但收到'undefined'
})
}
返回{
第一:第一,,
第二:第二
}
}();
你能帮我指引正确的方向吗?@{
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index7</title>
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
"use strict";
var MyTable = window.MyTable || {};
MyTable.LoadTable = function () {
var myglobalvar = '';
var first = function () {
myglobalvar = "foo";
// ...
// Create a Deferred
var defer = $.Deferred();
return defer //returns promise
};
var second = function () {
var localvar = first() //returns deferred
$.when.apply(null, localvar).done(function () {
alert(myglobalvar) //I expect 'foo' but receive 'undefined'
})
}();
return {
first: first,
second: second
}
}();
</script>
</head>
<body>
<div>
</div>
</body>
</html>
布局=空;
}
Index7
“严格使用”;
var MyTable=window.MyTable | |{};
MyTable.LoadTable=函数(){
var myglobalvar='';
var first=函数(){
myglobalvar=“foo”;
// ...
//创建一个延迟的
var defer=$.Deferred();
返回延迟//返回承诺
};
var second=函数(){
var localvar=first()//返回延迟
$.when.apply(null,localvar).done(函数(){
警报(myglobalvar)//我预期为'foo',但收到'undefined'
})
}();
返回{
第一:第一,,
第二:第二
}
}();
second
不会返回任何内容。您的意思是它在提醒未定义的?@Mario84,您可以在函数后面省略()并用以下行调用您的对象:var run=MyTable.LoadTable();run.second()@Mario84,您可以将()放在函数之后,将second()放在代码中,然后删除return语句。JSFIDLE目前不工作。