JS는 객체 기반의 프로그래밍 언어이며, JS를 구성하는 거의 모든 것이 객체다.
객체는 0개 이상의 프로퍼티와 메서드로 구성된 집합체이다. 프로퍼티는 키와 값으로 구성된다.
JS에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다.
프로퍼티: 객체의 상태를 나타내는 값(data)
메서드: 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior)


객체의 프로퍼티와 메서드
⇒ 객체를 사용하면 상태와 동작을 하나의 단위로 구조화할 수 있다.
C++이나 자바 같은 클래스 기반 객체지향 언어는 클래스를 사전에 정의하고 필요한 시점에 new 연산자와 함께 생성자를 호출하여 인스턴스를 생성하는 방식으로 객체를 생성한다.
JS는 프로토타입 기반 객체지향 언어로서 클래스 기반 객체지향 언어와는 달리 다양한 객체 생성 방법을 지원한다.
⇒ 가장 일반적이고 간단한 방법은 객체 리터럴을 사용하는 방법
객체 리터럴
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: ƒ}
// 중괄호 내에 프로퍼티를 정의하지 않으면 빈 객체가 생성된다.
var empty = {}; // 빈 객체
console.log(typeof empty); // object