진취적 삶
10 객체 리터럴 본문
10.1 객체란 ?
원시 값을 제외한 나머지 값은 모두 객체다
원시 값은 변경 불가능한 값이지만 객체는 변경가능한 값이다 .
프로퍼티는 키와 값으로 구성된다.
var person = {
name :'lee',
age :20
} ;
// name : property key
// age : property key
//'lee' : property value
//20 : property value
// name :'lee' => property
프로퍼티의 값이 함수일경우 일반 함수와 구분하기 위해서 method라 부른다.
var counter = {
num = 0;
increase :function () {
this.num ++
}
};
- 프로퍼티 : 객체의 상태를 나타내는 값
- 메소드 : 프로퍼티를 참조하고 조작할수 있는 동작
10.2 객체 리터럴에 의한 객체 생성
- 인스턴스 : 클래스에 의해 생성되어 메모리에 저장된 실체를 말한다.클래스는 인스턴스를 생성하기 위한 템플릿 개념
- 객체 지향에서의 객체는 클래스와 인스턴스를 포함한 개념
js 는 프로토타입 기반 객체지향 언어 로서 클래스 기반 객체지향 언어와는 달리 지원한다.
- 객체 리터럴
- Object 생성자 함수
- 생성자 함수
- Object.create 메서드
- 클래스
10.3 프로퍼티
ver person = {
name :'lee'.
age :20
}
식별자 네이미징 규칙을 준수하는 프로퍼티 키를 사용하자
var foo = {
0: 1,
1: 2,
2: 3,
};
console.log(foo); //{ '0': 1, '1': 2, '2': 3 }
프로퍼티 키에 문자열이나 심벌 값 외의 값을 사용하면 암묵적 타입 변화을 통해 문자열이 된다.
10.4 메서드
프로퍼티 값이 함수일 경우 일반 함수와 구분하기 위해 메서드라 부른다.
var circle = {
radius: 5,
getDiameter: function () {
return 2 * this.radius;
},
};
console.log(circle.getDiameter());
10.5 프로퍼티 접근
- 마침표 프로퍼티 접근 연산자
- 대괄호 프로퍼티 접근 연산자
대괄호 프로퍼티 접근의 경우 따옴표로 감싸줘야한다.
var person = {
name: "lee",
};
console.log(person.name);
console.log(person["name"]);
10.8 프로퍼티 삭제
delete 연산자는 객체의 프로퍼티를 삭제한다.
var person = {
name: "suha",
};
person.age = 20;
console.log(person); // name: 'suha', age: 20 }
delete person.age;
console.log(person); //{ name: 'suha' }
10.9 ES6에서 추가된 개체 리터럴의 확장 기능
10.9.1 프로퍼티 축약 표현
프로퍼티 값으로 변수를 사용하는 경우 변수 이름과 프로퍼티 키가 동일한 이름의 경우 생략 가능
let x = 1,
y = 2;
const obj = { x, y };
console.log(obj);
10.9.2 계산된 프로퍼티 이름
프로퍼티 키를 동적으로 생성 단 프로퍼티 키를 사용할 표현식의 대괄호로 묶어야 한다.
var prefix = "prop";
var i = 0;
const obj = {
[`${prefix}-${++i}`]: i,
[`${prefix}-${++i}`]: i,
[`${prefix}-${++i}`]: i,
};
console.log(obj);
10.9.3 메서드 축약 표현
const obj = {
name: "suha",
sayHi() {
console.log("hello " + this.name);
},
};
obj.sayHi();
'개발 도서 > 자바스크립트 deepdive' 카테고리의 다른 글
08 제어문 (0) | 2023.07.11 |
---|---|
09 타입 변환과 단축 평가 (0) | 2023.07.11 |
02 자바스크립트란? (0) | 2023.07.10 |
03 자바스크립트 개발 환경과 실행 방법 (0) | 2023.07.10 |
04 변수 (0) | 2023.07.10 |