다른 객체 집합을 포함하는 클래스를 생각해보십시오.클래스 함수의 영향을받는 클래스 변수를 동적으로 변경하십시오.
function Food=(){
this.apples = 8;
this.orange = 6;
this.peach = 3;
}
이제 추가 기능을 만들 수 있습니다.
Food.prototype.add(food){
this.apple += food.apple;
this.orange+=food.orange;
this.peach+=food.peach;
}
그러나, 내가 원하는 경우 어떻게 동적으로도 추가 할 것입니다 food.prototype.add 음식에 다른 일에 추가 할?
첫 번째 질문은 클래스의 모든 개체를 추가하는 간단한 방법이 있습니까?
두 번째 질문은 다음과 같습니다. 코드를 다음과 같이 작성할 수있었습니다.
function Food =(){
this.apples = 8;
this.orange = 6;
this.peach = 3;
this.addArray = [];
this.addArray.push(this.apples);
this.addArray.push(this.orange);
this.addArray.push(this.peach);
}
Food.prototype.add(food){
for (i=0, i<this.addArray.length, i++){
this.addArray[i]+=food.addArray[i];
}
}
이렇게하면 추가하려는 항목에 escargot을 추가하려는 경우 addArray에 간단히 추가 할 수 있습니다.
비슷한 addSet 또는 addObject를 만들 수있는 방법이 있습니까? 따라서 인덱스가있는 배열 대신에 이름이있는 집합 또는 객체를 사용할 수 있습니까? 이봐 당신이 시도 할 수
내게있어 여기 두 개의 다른 구조가 얽혀있는 것처럼 보입니다. 귀하의 '음식'은 사실 이름과 수량 쌍이 포함 된 '음식'입니다. 어레이가 아닌 객체를 사용한다는 생각은 훨씬 더 나은 접근 방법 인 것처럼 보이지만 올바른 방향을 향한 것입니다. (여기서는 "훨씬 더 나은 접근법"에 의해 의미가있는 유일한 것을 의미합니다.) –
'for (var item in obj) {...}'를 사용하여 객체 속성을 반복 할 수 있습니다. 배열과 같은 데이터 구조를 사용하려고하면 더 좋은 아이디어가됩니다. 주로 음식에 * "추가"*하려는 숫자가 아닌 다른 속성을 추가하려는 경우에 주로 사용됩니다. –