簡體   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