10.1 객체란?
- 객체 : 0개 이상의 프로퍼티로 구성된 집합. 키(key)와 값(value)으로 구성된다.
- 프로퍼티 값 : 자바스크립트에서 사용할 수 있는 모든 값 가능.
심지어 자바스크립트의 함수도 일급 객체이므로 프로퍼티 값으로 가능.
프로퍼티 값이 함수일 경우, 일반함수와의 구분을 위해 메서드(method)라고 부른다.
즉, 객체는 프로퍼티와 메서드로 구성된 집합체.
* 프로퍼티 : 객체의 '상태'를 나타내는 값(data)
* 메서드 : 프로퍼티(상태데이터)를 참조하고 조작할 수 있는 '동작'(behavior)
10.2 객체 리터럴에 의한 객체 생성
* 클래스 기반 객체지향 언어(ex: C++, Java) : 클래스를 사전 정의하고, 필요한 시점에 new 연산자와 함께 생성자(constructor)를 호출하여 인스턴스를 생성하는 방식으로 객체 생성
* 프로토타입 기반 객체지향 언어(ex: JavaScript) : 다양한 객체 생성 방법 지원
- 객체 리터럴 : 가장 일반적이고 간단한 방법.
- Object 생성자 함수
- 생성자 함수
- Object.create 메서드
- 클래스(ES6)
* 리터럴(literal)이란?
사람이 이해할 수 있는 문자 또는 약속된 기호를 사용하여 값을 생성하는 표기법.
즉, 값을 생성하기 위해 미리 약속한 표기법.
ex: 문자열 리터럴 : 'hello', 배열 리터럴 : [1, 2, 3]
객체 리터럴 : 중괄호({}) 내에 0개 이상의 프로퍼티 정의.
변수에 할당되는 시점에 자바스크립트 엔진은 객체 리터럴을 해석해 객체를 생성한다.
var person ={
name: 'Lee',
sayHello: function() {
console.log(`Hello! My name is ${this.name}.`);
}
};
console.log(typeof person); //object
console.log(person); //{name: "Lee", sayHello: f}
'JavaScript > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
실행 컨텍스트 (1) | 2023.12.08 |
---|---|
실행 컨텍스트 스택 (1) | 2023.12.08 |
10장 - 2. 객체 리터럴 (프로퍼티 / 메서드) (0) | 2022.02.02 |
1장. 프로그래밍 (0) | 2021.11.02 |