2017-03-05 61 views
-2

我需要一个for循环来生成一个对象的4个不同实例,全部使用不同的名称。对象实例的循环名称

for(z = 0; z < 4; z++) { 
     obstacleY = 699 + (z * 100); 
     console.log(obstacleY); 
     mg_terrain = new mg_terrain(1000, obstacleY, 120, 30); 
} 

我想写一些像mg_terrain + z = new mg_terrain(...);但我不知道这样做的正确方法。

+2

一个显而易见的问题是你使用实例名称遮盖了构造函数。但是如果你想要四个实例,为什么不使用一个数组呢? – jonrsharpe

回答

1

必须有此一dupetarget,但基本上,您使用的阵列

var terrains = [];           // *** 
for(z = 0; z < 4; z++) { 
    obstacleY = 699 + (z * 100); 
    console.log(obstacleY); 
    terrains[z] = new mg_terrain(1000, obstacleY, 120, 30); 
// ^^^^^^^^^^^ 
} 

数组可以让你保持对事物的有序集合 - 在这种情况下,mg_terrain对象 - 并通过索引(0,1等)访问它们。

如果在某个时刻想知道该阵列有多长时间,则可以使用其属性。数组的最高索引小于它的length(例如,如果length是4,则有四个项目:索引0,1,2和3)。

+0

找到了dupetarget:http://stackoverflow.com/questions/14442896/dynamic-variable-name-in-loop –