2013-10-17 97 views
1

我有一個對象值中的數字,我想在代碼運行時動態更新。例如,如果數字的值是30,那麼當我運行我的代碼時,我希望能夠更新這個數字來表示.. 20,但實際上我不得不進入代碼並親自更新到20.Javascript:如何在不更改代碼的情況下更新對象值?

如何編寫將更新此對象值的代碼?我遇到的麻煩是一個定時器系統,它會在減去一些數字後每隔1秒記錄一次值,而不是分配給它的NEW值。

var count = character.energy; // My Energy level is 30 
var counter = setInterval(timer, 1000); 

function timer() { 
    count += characterstats.energyregen; 
    if (count >= 30){ 
    clearInterval(counter); 
    } 
    document.getElementById("energy").innerHTML = count; 
    character.energy = count; 
} 
+3

更新如何?我不確定你的意思 –

回答

3

移動定時器內的計數變量的聲明和初始化。

var counter = setInterval(timer, 1000); 

function timer() { 
    var count = character.energy; // My Energy level is 30 
    count += characterstats.energyregen; 
    if (count >= 30){ 
    clearInterval(counter); 
    } 
    document.getElementById("energy").innerHTML = count; 
    character.energy = count; 
} 
+0

DUDE,這是工作!!!!!!!!!!我會在6分鐘:) – Shawn

+1

不要忘記標記答案爲接受,PLZ。 –

0

另一種方式,但可能不是你要找的是使用本地存儲和或cookie來存儲的價值。儘管如此,根據變量信息的重要性或私密性來判斷。我已經完成了這個工作,並在存儲之前將其加密。我已將該值存儲在localStorage中,然後在加載事件期間更新對象以獲取新值。 getter/setter類型函數是對象的一個​​屬性,所以每次腳本運行時它都會增加你想要的值。我通過存儲對象來做到這一點,就像在其上運行JSON的字符串一樣。如果你需要根據定時主題進行更新,那麼Mike的答案是一個很好的答案。如果您只使用計時器,因爲您不確定是否有其他方法,請嘗試使用localStorage選項。在某些情況下對我有用。快樂的編碼! :)

引用良好的帖子來存儲HTML5 localStorage中的對象:https://stackoverflow.com/a/2010948/2762516來自同伴堆棧用戶!

SORRY!我誤解了這個問題。我以爲你想每次運行代碼時都要更新,而不是在代碼運行時更新。我道歉:)

相關問題