모던 자바스크립트 딥다이브 스터디 #2-1 (CH10, 11)

10장 객체 리터럴

JS는 객체 기반의 언어이다. primitive값을 제외한 나머지 값(함수, 배열, 정규표현식까지!)은 모두 객체이다.

JS에서 객체란 다양한 타입의 값을 하나의 단위로 구성한 자료구조(data structure), 구조체(structure)이다.

원시 값은 immutable하지만 객체는 mutable하다.

객체는 0개 이상의 프로퍼티로 구성되어있고, 프로퍼티는 키와 으로 구성된다.

쉽게 말해 JS의 객체는 프로퍼티의 집합이다.

JS에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다.

심지어 JS의 함수는 일급 객체이므로 이 역시 값으로 취급할 수 있다. 만약 프로퍼티 값이 함수라면 JS에서는 이를 특별히 메서드라고 부른다.

객체 리터럴에 의한 객체 생성

클래스 기반 OOP언어들은 클래스를 사전에 정의하고 필요할때 new연산자로 인스턴스를 생성하는 방식으로 객체를 사용한다.

반면 JS는 프로토타입 기반 OOP언어이다. 클래스 기반과 다르게 객체 생성에 다양한 방법을 지원한다.