축약식 표기법(literal Notation)
객는 중괄호와 그 콘텐츠로 구성된다. 객체는 hotel이라는 변수에 저장되므로 이 변수를 호텔 객체로 참조할 수 있다.
각 키와 값은 콜론(:)으로 구분한다. 각 속성과 메서드는 쉼표로 구분하고 마지막 값 다음에는 생략한다.
const hotel = { name : 'hilton', rooms: 40, booked : 25, checkAvailability : function(){ return this.rooms - this.booked; } };
생성자 표기법
new
와 객체 생성자는 빈 객체를 생성한다. 이후에 객체에 속성과 메서드를 추가할 수 있다.
이 방법은 이미 생성된 어떤 객체(어떤 방식으로 생성된 객체인지는 중요하지 않다)에 속성과 메서드를 추가할 때 사용한다.
const hotel = new Object(); hotel.name : 'hilton', hotel.rooms: 40, hotel.booked : 25, hotel.checkAvailability : function(){ return this.rooms - this.booked; }
마침표 표기법
const hotelName = hotel.name; const roomFree = hotel.checkAbility();
대괄호 표기법
const hotelNAme = hotel['name'];
대괄호 표기법은 대부분 다음의 경우에 사용한다.
- 속성의 이름이 숫자인 경우
- 속성의 이름을 지정할 때 변수가 사용된 경우
속성 값을 변경하려면 마침표 표기법이나 대괄호를 사용한다.
이 방법은 축약형 표기법이나 생성자 표기법을 이용해 생성된 객체에 모두 사용할 수 있다.
속성을 제거하려면 delete
키워드를 사용한다.
속성 값을 변경하려면 객체에 속성을 추가할 때와 동일한 방법 사용. 다만 새로운 값을 대입한다.
(객체가 가지고 있지 않은 속성을 수정하려고 하면 이 속성은 객체에 새롭게 추가된다.)hotel.name = 'ryu';
대괄호 문법을 사용해도 값을 변경할 수 있다. 객체의 이름 다음에 대괄호를 열고 변경할 속성 이름을 기입 후 대괄호를 닫으면 된다.
(객체가 가지고 있지 않은 속성을 수정하려고 하면 이 속성은 객체에 새롭게 추가된다.)hotel['name'] = 'ryu';
속성 제거
Delete 키워드 다음에 객체의 이름과 속성 이름을 나열한다,delete hotel.name;
단지 속성 값만을 지우려면 빈 문자열을 대입한다.
hotel.name='';