简体   繁体   English

如何在 JQuery 的父 function 中为全局变量赋值

[英]How to assign value for global variable within the parent function in JQuery

I'm trying to set a value of somewhat global variable in one function so that it would be accessible in another.我试图在一个 function 中设置一个有点全局变量的值,以便它可以在另一个中访问。 Here's a stripped down code of mine.这是我的精简代码。 I've tried all kind of ways how to define the variable but it keeps returning undefined.我已经尝试了各种方法来定义变量,但它一直返回未定义。

"use strict";
var MyTable = window.MyTable || {};

MyTable.LoadTable = function() {
  var myglobalvar = '';

  var first = function() {
    myglobalvar = "foo";
    // ...
    return deferred //returns promise
  }

  var second = function() {
    var localvar = MyTable.LoadTable.first() //returns deferred
    $.when.apply(null, localvar).done(function() {
      alert(myglobalvar) //I expect 'foo' but receive 'undefined'
    })
  }

  return {
    first: first,
    second: second
  }
}();

Could you kindly steer me to the right direction?你能引导我走向正确的方向吗?

@{
    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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM