JS 객체 지향 프로그래밍

FE 개발자 신상오·2022년 5월 25일
0

JS

목록 보기
10/15
post-thumbnail

클로저 이용한 새로운 객체 생성

function makeCounter() {
  let value = 0;
  return {
    increase: function() {
      value++;
    },
    decrease: function() {
      value--;
    },
    getValue: function() {
      return value;
    }
  }
}

let counter1 = makeCounter()
counter1.increase()
counter1.getValue() // 1

let counter2 = makeCounter()
counter2.decrease()
counter2.decrease()
counter2.getValue() // -2

새로운 객체가 필요할 때마다 함수를 재사용할 수 있다는 점이 클로저 모듈의 장점입니다


객체 지향 프로그래밍

객체 지향 프로그래밍은 하나의 모델이 되는 청사진을 만들고
그 청사진을 바탕으로 한 객체를 만드는 프로그래밍 패턴

자바스크립트에는 '객체'라는 개념이 객체 지향 프로그래밍과 무관하게 이미 존재하기 때문에
'청사진'을 바탕으로 한 객체는 인스턴스 객체는 instance, 청사진은 class라고 부릅니다.


ES5 VS ES6 클래스 작성문법

ES5 클래스 작성문법

function Car(brand, name, color) {
  // 인스턴스가 만들어질 때 실행되는 코드
}

ES6 클래스 작성문법

class Car{
  constructor(brand, name, color)
  // 인스턴스가 만들어질 때 실행되는 코드
}

✅ 최근에는 ES6 방법을 주로 사용합니다!


new 키워드

새로운 인스턴스를 만들 때 지켜야하는 규칙

  • 새로운 인스턴스는 만들때 new 키워드 사용
  • 일반적인 다른 함수와 구분하기 위해 클래스는 보통 대문자로 시작하며 일반명사로 만듦
let avante = new Car('hyundai', 'avante', 'black');
let avante = new Car('bmw', 'mini', 'white');
let avante = new Car('kia', 'k5', 'red');

인스턴스를 만들 때 new 키워드를 사용하고 즉시 생성자 함수가 실행되며
변수에 클래스의 설계를 가진 새로운 객체인 인스턴스가 할당됩니다.
각각의 인스턴스는 클래스의 고유한 속성과 메서드를 가지게 됩니다.

profile
주간 회고용 블로그입니다 (개발일지와 정보글은 티스토리에 작성합니다.)

0개의 댓글