Используйте переменную let в разных функциях - PullRequest
0 голосов
/ 11 декабря 2018

в моем приложении мне нужно где-то хранить глобальную переменную, которая будет использоваться только одним методом.Я использую в javascript (jquery).

мой код выглядит так:

$(function () {
    let myVar;
    // ...
};

// and method
function foo() {
   if (!myVar) {
      // calculate myVar
   }

   // do something with myVar and update its value
}

Проблема в том, что я не вижу myVar в этом методе.Я также попытался использовать localStorage и sessionStorage.но когда я обновляю значение страницы все еще установлено.Мне нужно вычислить новое значение после обновления страницы и не использовать предыдущее.

Каков наилучший способ хранения переменных в моем случае?Спасибо за совет.

Ответы [ 3 ]

0 голосов
/ 11 декабря 2018

Ключевое слово let имеет область видимости блока - оно не будет доступно вне его блока кода (функция, цикл, условный и т. Д.). Вы должны назначить его непосредственно объекту окна:

window["myVar"] = "A value";
0 голосов
/ 11 декабря 2018

В дополнение к @Vlandu lonuts post:

window.myVar означает, что ваша переменная объявляется в самом верху глобальной области видимости.Это означает, что любой ваш код JavaScript будет иметь доступ к этой переменной.

0 голосов
/ 11 декабря 2018

Вы можете назначить свойство на объекте окна.Это работает в контексте браузера

window["myVar"] = "myValue";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...