본문 바로가기
자료구조,알고리즘/Java Script 기초

JS기초 12 : 생성자 함수, new.target

by 슈퍼 루키 2022. 7. 24.

생성자 함수

- 유사한 객체를 다중으로 만들 때 사용되는 함수 ( 타 언어에서 class 개념과 유사)

- 일반적으로 생성자 함수의 첫 글자는 대문자로 시작

- 생성자 함수로 객체 생성 시 new 연산자를 통해 객체 생성

function Fishbread(flavor, price) {
  this.flavor = flavor;
  this.price = price;
  this.base = "floor";
}

let bread_1 = new Fishbread("cream", 1200);
let bread_2 = new Fishbread("readbean", 1000);
let bread_3 = new Fishbread("milk", 1500);

console.log(bread_1); //Fishbread { flavor: 'cream', price: 1200, base: 'floor' }
console.log(bread_2); //Fishbread { flavor: 'readbean', price: 1000, base: 'floor' }
console.log(bread_3); //Fishbread { flavor: 'milk', price: 1500, base: 'floor' }

 

new.target

- new.target이 없을때 new 키워드 추가하여 호출되도록 처리

// new가 없으면 붙여주는 스마트한 생성 함수
function User(name) {
  if (!new.target){
    return new User(name);
  }
  this.name = name;
};

let result_1=  User("John");
let result_2= new User("John");
console.log(result_1);//User { name: 'John' }
console.log(result_2); //User { name: 'John' }

 

 

반응형

댓글