[英]JavaScript - Function Not Modifying Global Variable
我在用JavaScript編寫代碼的文本冒險游戲中修改變量時遇到麻煩。 我想使用一個函數中的一個函數來更改全局變量的值(不,不是閉包)。
/*This is just example code.*/
var health = 100;
var exp = 0;
function refreshStats() {
health -= 10;
exp += 1;
}
function foo(flag) {
if (flag == DONOTHING) {
refreshStats();
}
if (health <= 0) {
say("You died, bwahaha.");
}
if ((exp/10) == Math.floor(exp/10)) {
health += 10;
say("You leveled up!");
}
}
游戲的工作方式是每個功能(定義為游戲中的動作或區域)將由JavaScript放置的按鈕和表單分別調用,用戶可以單擊或寫入這些按鈕和表單。 我需要refreshStats()更新運行狀況和exp變量,以便foo()可以正確使用它們; 直到foo()運行之后,該函數似乎才更新變量。 我確實想知道這是否是瀏覽器兼容性問題,確實會打擾我,但我希望不是那樣。
有什么建議么?
將值存儲到窗口對象中,因此它將在該窗口的任何范圍內可用:
//take care to not overwrite native properties of the window
window.health = 100;
window.exp = 0;
function refreshStats() {
health -= 10;
exp += 1;
}
似乎對我有用 。 也許這是一個范圍問題-您可以發布實際的相關代碼,而不是示例代碼嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.