簡體   English   中英

Javascript:如何在不更改代碼的情況下更新對象值?

[英]Javascript: How do you update a object value without changing your code?

我有一個對象值中的數字,我希望在代碼運行時動態更新。 因此,例如,如果數字的值是30,當我運行我的代碼時,我希望能夠更新這個數字來說.. 20,而我實際上不必進入代碼並親自將其更新為20。

如何編寫將更新此對象值的代碼? 我遇到的麻煩是一個定時器系統,它每1秒保持一次30的值,而不是在減去一些數字后分配給它的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;
}

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

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;
}

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

參考用於在HTML5 localStorage中存儲對象的好帖子:來自其他用戶的https://stackoverflow.com/a/2010948/2762516

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM