
자바스크립트는 객체 기반 프로그래밍 언어이다.
🔫 객체는 프로퍼티 와 메서드로 구성된 집합체이다. 상태와 동작을 하나의 단위로 구조화 할 수 있다.
객체는 프로퍼티의 집합이며, 프로퍼티는 키와 값으로 구성된다.
let person = {
  // 프로퍼티 키는 name, 프로퍼티 값은 "sarah"
  name: "sarah",
  // 프로퍼티 키는 age, 프로퍼티 값은 20
  age: 20,
};
객체에 묶여 있는 함수
let circle = {
  radius: 5, // 프로퍼티
  
  // 원의 지름
  getDiameter: function () { // 메서드
    return 2 * this.radius;
  },
};
프로퍼티에 접근하는 방법은 두 가지가 있다.
대괄호 프로퍼티 접근 연산자의 경우 프로퍼티 키는 반드시 따옴표로 감싼 문자열이어야 한다. 그렇지 않으면 자바스크립트 엔진이 식별자로 해석한다.
person[name] -> undefined 출력. 선언된 name이 없기 때문
delete 연산자로 객체의 프로퍼티를 삭제한다.
let person = {
  name: "sarah",
};
delete person.name;
📌 프로퍼티 축약 표현
ES6에서는 프로퍼티 값으로 변수를 사용하는 경우 변수 이름과 프로퍼티 키가 동일한 이름일 때 프로퍼티 키를 생략 할 수 있다.
let x = 1,
  y = 2;
const obj = { x, y };
console.log(obj); // {x : 1, y : 2}
📌 메서드 축약 표현
const obj = {
  name: "sarah",
  sayHi() {
    console.log("Hi! " + this.name);
  },
};
obj.sayHi(); // Hi! sarah