从函数内改变全局变量

时间:2013-03-24 21:23:14

标签: javascript function global 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> 

2 个答案:

答案 0 :(得分:7)

是的,概念上这是对的。只有你没有调用该函数,至少在将Number写入文档之前不会。

顺便说一下,NumberNumber constructor的全局引用,所以你应该使用另一个变量名,最好是小写。

var num = 100;
function outcome() {
    num--;
}
outcome();
document.write(num); // 99

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

Demo at jsfiddle.net

答案 1 :(得分:2)

你必须打电话给你的功能:

<script>
var Number=100    
function outcome(){ 
Number=Number-1 
}
outcome(); // call the function here
document.write(Number)  
</script> 

或者首先不使用函数:

<script>
var Number=100    
Number=Number-1   
document.write(Number) 
</script>