【发布时间】:2017-02-19 12:06:57
【问题描述】:
我有一个名为“updater”的计时器,它每秒运行一次。我还有一个对象“particleFunctions”,它的方法中包含多个函数。我希望“particleFunctions”中的所有“更新”函数都能每秒执行一次。
理想情况下,我希望 console.log 每秒输出一次输出这条消息:
0
1
2
var updater = setInterval(createParticles, 1000);
var particleFunctions = {
particle0 : function(i){
this.update = function(i){
console.log(i);
}
},
particle1 : function(i){
this.update = function(i){
console.log(i);
}
},
particle2 : function(i){
this.update = function(i){
console.log(i);
}
}
}
function createParticles(){
for (var i = 0; i < Object.keys(particleFunctions).length; i++){
particleFunctions['particle' + i].update(i);
}
}
【问题讨论】:
-
尝试将您的 json 更改为“particle1”(使用引号)而不是particle1。
-
您的
particleX函数都做同样的事情:将this.update设置为执行console.log(i)的函数,但您的代码不会调用particleX()函数。
标签: javascript object for-loop methods setinterval