如何在javascript函数中定义全局变量并在其外部访问它?

时间:2015-06-16 07:43:48

标签: javascript

我在javascript函数中定义了一个名为var1的变量,但无法在函数外部访问它。我已经提到了几种解决方案,其中我使用这种方法来定义全局变量,但是在函数外部无法访问它。

function msg1(a) {
    window.var1=a;
}
document.getElementById("scores").innerHTML=var1;

2 个答案:

答案 0 :(得分:1)

如果您在尝试使用msg1之前致电var1,那就行了。

function msg1(a) {
  window.var1 = a;
}
msg1("Hi");
document.getElementById("scores").innerHTML = var1;
<div id="scores"></div>

总的来说,全局变量是一个坏主意。全局命名空间已经过于拥挤,很容易因为覆盖(或未能覆盖)已存在的东西而导致细微的错误。相反,您可以使用作用域函数将全局创建到您的代码而不实际是全局的:

(function() {
  var var1;

  function msg1(a) {
    var1 = a;
  }
  msg1("Hi");
  document.getElementById("scores").innerHTML = var1;
})();
<div id="scores"></div>

答案 1 :(得分:-2)

您也可以这样做,只是有点晦涩:

var $ = {};
$.set =((a, b)=>{
    localStorage.setItem(a, b);
});
$.get =((a)=>{
    return localStorage.getItem(a);
});
function test () {
    $.set("foo", 12);
}
alert($.get("foo"));
相关问题