Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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/2/jquery/68.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
Javascript 如何在JQuery中为父函数中的全局变量赋值_Javascript_Jquery_Variables - Fatal编程技术网

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目前不工作。