Как назначить значение для глобальной переменной в родительской функции в JQuery - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь установить значение несколько глобальной переменной в одной функции, чтобы оно было доступно в другой. Вот мой урезанный код. Я пробовал все виды способов определения переменной, но она продолжает возвращать неопределенное значение.

"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
  }
}();

Не могли бы вы направить меня в правильном направлении?

1 Ответ

0 голосов
/ 30 сентября 2019
@{
    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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...