더북(TheBook)

그림 3-1은 var slider = Marsupial('슬라이더', true) 실행 후 콘솔 창의 에러 메시지다.

►그림 3-1

 

new가 없을 때 에러를 내지 않고 자동으로 new를 붙여 인스턴스를 만들어 반환하게 할 수도 있다(예제 3-5).

예제 3-5 new를 자동 삽입하여 인스턴스를 생성

소스 파일 3장\New Pattern\newpattern_03.js

function Marsupial(name, nocturnal) {
if (!(this instanceof Marsupial)) {
  return new Marsupial(name, nocturnal);
}
this.name = name;
this.isNocturnal = nocturnal;
}

var slider = Marsupial('슬라이더', true);

console.log(slider.name); // '슬라이더'

예제 3-5는 new 없이 Marsupial 함수를 실행했지만, 예제 3-4처럼 에러를 내는 대신 new 키워드로 Marsupial 인스턴스를 생성한 후 반환한다. 이렇게 new가 없으면 자동으로 삽입한 뒤 처리하면 개발자는 Marsupial 함수 호출부에서 new를 신경 쓸 이유가 없다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.