Javascript 在每次迭代中延迟迭代对象属性
这是我的代码:Javascript 在每次迭代中延迟迭代对象属性,javascript,object,Javascript,Object,这是我的代码: maleBackNoZoom = { parts:{ armsRight: findItemById("29") , armsLeft: findItemById("28"), legsRight: findItemById("21"), legsLeft: findItemById("22"), back: findItemById("24"), buttocks: findItemById("23"), n
maleBackNoZoom = {
parts:{
armsRight: findItemById("29") ,
armsLeft: findItemById("28"),
legsRight: findItemById("21"),
legsLeft: findItemById("22"),
back: findItemById("24"),
buttocks: findItemById("23"),
neck: findItemById("26"),
head: findItemById("27")
},
illuminate: function() {
for (prop in maleBackNoZoom.parts) {
maleBackNoZoom.parts[prop].opacity = 1;
paper.view.update();
}
}
}
我正在迭代所有部分
,并尝试将它们的不透明度设置为1。
所以这些命令:
maleBackNoZoom.parts[prop].opacity = 1;
paper.view.update();
应每n秒调用一次
如何在每次迭代中添加延迟?
注意:我当然已经通读了javascript中延迟迭代的所有问题,但大多数问题都与数组有关,而不是对象属性遍历您可以创建一个要说明的属性列表。然后像处理阵列一样处理照明
illuminate: function() {
var propertiesToIlluminate = [], prop, illuminateInternal, i = 0, delay = 1000, intervalId;
for (prop in maleBackNoZoom.parts) {
propertiesToIlluminate.push(prop);
}
illuminateInternal = function () {
var property = propertiesToIlluminate[i];
maleBackNoZoom.parts[property].opacity = 1;
paper.view.update();
i++;
if (i === propertiesToIlluminate.length) {
clearInterval(intervalId);
}
};
intervalId = setInterval(illuminateInternal, delay);
}
是否可以将illuminateInternal函数作为maleBackNoZoom对象的一部分,以便我可以使用不同名称和不同部分重用该对象?