1. 객체란?
- 자바스크립트는 객체 기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 “모든 것”이 객체이다.(원시 값을 제외한 나머지 값 모두 객체)
- 원시 타입의 값은 변경 불가능한 값이지만, 객체 타입의 값은 변경 가능한 값이다.
객체는 0개 이상의 프로퍼티로 구성된 집합이며, property는 key와 value로 구성된다.

- 프로퍼티 : 객체의 상태를 나타내는 값(data)
- 메서드: 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior)
<aside>
💡 객체는 객체의 상타내는 프로퍼티와 프로퍼티를 참조하고 조작할 수 있는 메서드를 모두 포함할 수 있기 때문에 상태와 동작을 하나의 단위로 구조화할 수 있어 유용하다.
</aside>
- 자바스크립트의 객체는 함수와 밀접한 관계를 가진다. 함수로 객체를 생성하기도 하며, 함수 자체가 객체이기도 하다. 즉, 함수와 객체는 분리해서 생각할 수 없는 개념이다.
2. 객체 리터럴에 의한 객체 생성
클래스 기반 객체지향 언어는 클래스를 사전에 정의하고, 필요한 시점에 new 연산자와 함께 생성자constructor를 호출하여 인스턴스를 생성하는 방식으로 객체를 생성한다.

자바 스크립트는 다양한 객체 생성 방법을 지원.
- 객체 리터럴, Object 생성자 함수, 생성자 함수, Object.create 메서드, 클래스