10장 객체 리터럴 / 124 ~ 136 page
객체란?
객체 리터럴에 의한 객체 생성
- 객체 리터럴
- Object 생성자 함수
- 생성자 함수
- Object.create 메서드
- 클래스 (ES6)
프로퍼티
- 프로퍼티 키: 빈 문자열을 포함하는 모든 문자열 또는 심벌 값
- 프로퍼티 값: 자바스크립트에서 사용할 수 있는 모든 값
메서드
프로퍼티 접근
- 마침표 프로퍼티 접근연산자 (.)를 사용하는 마침표 표기법
- 대괄호 프로퍼티 접근 연산자 ([...])를 사용하는 대괄호 표기법
let person = {
name: 'lee'
};
console.log(person.name) // 마침표 표기법
console.log(person['name']) // 대괄호 표기법
프로퍼티 값 갱신
let person {
name: 'lee'
};
person.age = 20; // person객체에 age 프로퍼티가 동적으로 생성되고 값이 할당된다.
console.log(person); // {name: "lee", age: 20}
프로퍼티 삭제
let person {
name: 'lee'
};
person.age = 20; // 프토퍼티 동적 생성
delete person.age; // age 프로퍼티 삭제
delete person.address; // 존재하지 않는 값, 에러가 발생하지 않는다.
ES6에서 추가된 객체 리터럴의 확장 기능
프로퍼티 축약 표현
let x = 1 , y = 2;
let odj = {
x: x,
y: y
};
console.log(odj); // {x: 1, y:2}
계산된 프로퍼티 이름
let prefix = 'prop';
let i = 0;
let obj = {};
obj[prefix + '-' + ++i] = i;
obj[prefix + '-' + ++i] = i;
obj[prefix + '-' + ++i] = i;
console.log(obj); // {prop-1: 1, prop-2: 2, prop-3: 3}
메서드의 축약 표현
const obj = {
name: 'lee', //메서드 축약 표현
sayHi() {
console.log("Hi!' + this.name);
}
};
obj.sayHi(); // Hi! lee