2014-09-01 62 views
0

我想在javaScript中定义一个启动setInterval的函数。 这里是一个非常简单的例子:如何实例化在javaScript中使用setInterval的对象?

var myApp = {};

myApp.test = function(name, start) { 
    this.name = name; 
    this.value = start; 
    selbst = this; 
    this.timerId = setInterval(function() { 
     console.log('Interval for :' + selbst.name); 
     selbst.value++; 
     console.log('Name: ' + selbst.name + ', new value: ' + se`enter code here`lbst.value); 
     selbst.start++; 
    }, 1000); 
} 

如果我实例化一个对象这个完美的作品:

$(document).ready(function() { 
    new myApp.test('Test1', 0); 
}); 

然而,当我定义了两个对象

$(document).ready(function() { 
    new myApp.test('Test1', 0); 
    new myApp.test('Test2', 100); 
}); 

只有第二个对象的setInterval的开始!这是为什么?我希望这两个指向同一个班级的对象都有自己的时间间隔。 为什么第二个setInterval会覆盖第一个?我使用的是类字段,它们应该是独立的!

请帮助...

回答

3

从我所看到的,你有selbst变量全局定义的,所以每个test方法调用,selbst将始终参阅最后myApp对象实例。在本地定义selbst应该做的工作:

var selbst = this; 
+0

男人,我是盲人!谢谢你的快速回复! – 2014-09-01 09:31:36