그림 3-1은 var slider = Marsupial('슬라이더', true) 실행 후 콘솔 창의 에러 메시지다.
![](https://thebook.io/img/006844/135.jpg)
►그림 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를 신경 쓸 이유가 없다.