从函数内改变全局变量

Dar*_*man 4 javascript global function increment

我写这个非常简单的脚本时遇到了一些问题.此脚本的目的是在每次单击按钮时将给定数量减少一个.我似乎无法做到这一点.我的全局变量是数字= 100似乎没有改变,或改变不止一次..抱歉无法解释这一点.这是我正在努力的部分..:

<script>
  var Number = 100;        // Number i want changed and to keep changing each button click
  function outcome() {     // Button calls this function
    Number = Number - 1;   // Tries to change Global Number.. :/
  }
  document.write(Number);  // Has the Number written in the document
</script> 
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 7

是的,从概念上讲这是对的.只有你没有调用函数,至少在写入Number文档之前没有.

顺便说一句,NumberNumber构造函数的全局引用,所以你应该使用另一个变量名,最好是小写.

var num = 100;
function outcome() {
    num--;
}
outcome();
document.write(num); // 99
Run Code Online (Sandbox Code Playgroud)

要么

<script>
var num = 100;
function outcome() {
    num--;
    alert(num);
}
</script>
<button onclick="outcome()">Decrease!</button>
Run Code Online (Sandbox Code Playgroud)

(在jsfiddle.net上演示)

  • 人们会认为它不会,但人们会忘记我们在谈论JavaScript.;-) (2认同)