본문 바로가기

JavaScript/모던 자바스크립트 Deep Dive

10장 - 1. 객체 리터럴 (객체 / 객체 리터럴)

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