繁体   English   中英

如何在javascript中更改全局变量?

[英]How can I change global variables in javascript?

我的 html 页面显示一个按钮,该按钮在单击时调用函数。 我通过在单击时显示一条消息来检查以确保该按钮正常工作并且它工作正常。 我创建了这个函数来更改全局变量,但是当我单击 html 页面上的另一个按钮以显示变量的值时,变量没有更改为我使用我的函数设置的值。 有人可以在我下面的代码中找到问题吗?

    var a = 5;
    var b = 16;
    var c = 27;

    function reset(){
    a = 0;
    b = 0;
    c = 0;
    }

我调用函数的 html 代码:

   <!DOCTYPE HTML>

   <html>
   <center>
   <script type="text/javascript" src="game.js" > </script>
   <form>
   <input type="button" value="Reset Variables" style="width:250px;height:50px" onclick="reset()" >
   </form>
   </html>

显示变量的Javascript代码:

    function display(){

    document.write("A is equal to " + a + "<br/>");
    document.write("B is equal to " + b + "<br/>");
    document.write("C is equal to " + c );

}

html显示变量

   <!DOCTYPE HTML>

   <html>
   <center>
   <script type="text/javascript" src="game.js" > </script>
   <form>
   <input type="button" value="Show Variables" style="width:250px;height:50px" onclick="display()" >
   </form>
   </html>

那行不通,因为您在函数范围内断言该变量。 但是您的变量当前存储在全局范围(窗口)中,因此此代码将起作用:

var a = 5;
function reset() {
    console.log(window.a); // 5
    window.a = 10;
}
reset();
console.log(a); // 10

将函数名称更改为 reset_vars 或其他任何名称。 reset() 是用于重置表单的内置 DOM 函数。

http://www.w3schools.com/jsref/met_form_reset.asp

除非定义了局部变量,否则在函数内部使用全局变量不会有任何冲突。 在这种情况下,使用 window.variable_name 访问全局变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM