在我的应用程序中,我需要在某处存储全局变量,该全局变量将仅由一种方法使用。我正在使用前端javascript(jquery)。
我的代码如下:
$(function () {
let myVar;
// ...
};
// and method
function foo() {
if (!myVar) {
// calculate myVar
}
// do something with myVar and update its value
}
问题是我在该方法中看不到myVar。我也尝试使用localStorage和sessionStorage。但是当我刷新页面时仍然设置了值。我需要在页面刷新后计算新值,并且不使用上一个。
在我的情况下,存储变量的最佳实践是什么?谢谢你的建议。
答案 0 :(得分:3)
您可以在窗口对象上分配属性。这在浏览器上下文中有效
window["myVar"] = "myValue";
答案 1 :(得分:1)
let关键字具有块作用域-在其代码块(函数,循环,条件等)之外将无法访问它。您应将其直接分配给窗口对象:
window["myVar"] = "A value";
答案 2 :(得分:1)
在@Vlandu的其他甜甜圈帖子中:
window.myVar
意味着您的变量是在全局范围的最顶端声明的。这意味着您的任何JavaScript代码都可以访问此变量。