객체에 미리 속성을 넣지않고 빈 객체인 상태로 선언을 하고 동적으로 객체에 속성을 추가하거나 제거할 수 있다.
// cart를 식별자로 하는 빈 객체를 선언 let cart={};
// 동적으로 cart 객체에 속성을 추가 cart.item1='MSI Gaming Laptop'; cart.item2='SAMSUNG Galaxy S10+'; cart.item3='Apple iPhone X'; cart.item4='Geforce RTX 2080';
// 메서드도 추가 가능하다. cart.show = function () { let result = ''; for(let key in this) { // 메서드는 출력되지 않게 만든다. if(key != 'show') { result += key + '\t' + this[key] + '\n'; } } return result; }; alert(cart.show());
// delete 키워드는 객체의 속성을 제거 delete(cart.item1);
// 한번더 호출하면 item1이 제거된 것을 확인 가능 alert(cart.show()); |
파란색으로 표시된 부분이 객체에 속성을 추가하는 과정이고, 일반적인 속성뿐만 아니라 메서드도 같은 방법으로 추가될 수 있다. 제거는 delete 키워드를 통해 사용가능하다. 빨간색으로 표시된 부분이 객체에 속성을 제거하는 과정이다. delete 키워드를 전후로 alert로 출력되는 것을 보면 나중에 출력되는 곳에 item1 키가 제거가 된 것을 알 수 있다.
// 객체 선언 let object={ John : 20000, Jane : 10000, Alan : 7500, };
// 일반 속성 추가 object.Fran = 17500; object.Urke = 12000;
// 첫 번째 메서드 추가 object.sum = function(){ let total=0; for(let key in object){ if(key != 'sum' && key != 'page'){ total+=object[key]; } } return total; }; alert(object.sum());
// 두 번째 메서드 추가 object.page = function(){ let script=''; for(let key in object){ if(key != 'page' && key != 'sum'){ script+=key + '\t' + object[key] + '\n'; } } return script; }; alert(object.page()); |
메서드도 여러개가 추가가 되도 문제가 없다.
'프로그래밍 공부 > JavaScript' 카테고리의 다른 글
JavaScript - 객체 연습문제 (0) | 2019.12.09 |
---|---|
JavaScript - 객체와 배열을 사용한 데이터 관리 (0) | 2019.12.08 |
JavaScript - 객체와 반복문 / 객체 관련 키워드 (0) | 2019.12.07 |
JavaScript - 속성과 메서드 (0) | 2019.12.06 |
JavaScript - 객체 기본 (0) | 2019.12.06 |