我在javascript函数中定义了一个名为var1的变量,但无法在函数外部访问它。我已经提到了几种解决方案,其中我使用这种方法来定义全局变量,但是在函数外部无法访问它。
function msg1(a) {
window.var1=a;
}
document.getElementById("scores").innerHTML=var1;
答案 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"));