2017-03-05 6 views
-2

오브젝트의 네 가지 인스턴스 (모두 다른 이름)를 생성하려면 for 루프가 필요합니다.오브젝트 인스턴스의 루핑 이름

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 속성 (terrains.length)을 사용하십시오. 배열의 가장 높은 색인은 length보다 하나 작습니다 (예 : length이 4 인 경우 4 개의 항목 : 색인 0, 1, 2, 3).

+0

dupetarget을 찾았습니다. http://stackoverflow.com/questions/14442896/dynamic-variable-name-in-loop –