2013-10-17 79 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!我误解了这个问题。我以为你想每次运行代码时都要更新,而不是在代码运行时更新。我道歉:)

相关问题