在不同的函数中使用let变量

时间:2018-12-11 10:56:52

标签: javascript jquery function ecmascript-6

在我的应用程序中,我需要在某处存储全局变量,该全局变量将仅由一种方法使用。我正在使用前端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 :(得分:3)

您可以在窗口对象上分配属性。这在浏览器上下文中有效

window["myVar"] = "myValue";

答案 1 :(得分:1)

let关键字具有块作用域-在其代码块(函数,循环,条件等)之外将无法访问它。您应将其直接分配给窗口对象:

window["myVar"] = "A value";

答案 2 :(得分:1)

在@Vlandu的其他甜甜圈帖子中:

window.myVar意味着您的变量是在全局范围的最顶端声明的。这意味着您的任何JavaScript代码都可以访问此变量。