[JavaScript] 생성자 함수

서혁진·2021년 7월 19일
0

생성자란?
OOP(객체 지향 프로그래밍)에서 객체 생성 시 호출되는 객체의 초기화를 담담하는 서브 루틴

사용 이유?
여러 개의 객체를 생성할 때 일일이 생성하는 것 보다 잘 초기화 되어있는 생성자를 통해 생성하면 캡슐화 및 코드의 재활용성이 높아진다

자바스크립트에서의 생성자
별도의 생성자가 있는 것은 아니지만, 일종의 흉내내기 인듯 하다.
아무 함수에다 new 를 붙여서 변수에 할당해주면 생성자의 역할을 한다.

function Item(title, price) {
  // this = {};
  
  this.title = title;
  this.price = price;
  this.showPrice = () => {
    console.log(`가격은 ${price}원 입니다.`)
  }

  // return this;
}

const item1 = new Item('인형', 3000);
const item2 = new Item('가방', 5000);
const item3 = new Item('지갑', 9000);

console.log(item1, item2, item3);

item3.showPrice();

new 를 통해 생성하면 생성자는 암묵적으로 this = {}를 통해 빈 객체를 할당하고, return this;로 객체를 반환해준다.

new 없이 그냥 함수를 할당하면 에러가 나지는 않으나, 반환하는 값이 없으니깐 undefined 가 되겠지요?

정리 : OOP 를 쓰고있다면 캡슐화!!

출처 : https://youtu.be/8hrSkOihmBI

profile
안녕하세요

0개의 댓글