카테고리 없음
[JS] 생성자 함수: 강제로 인스턴스 생성하기
devheedoo
2018. 6. 29. 15:30
JavaScript에서 new
를 쓰지 않고 생성자 함수를 사용할 경우 에러가 발생할 수 있다. 이를 방지하기 위해 다음과 같은 코딩이 널리 사용된다고 한다.
function A(arg) {
if (!(this instanceof arguments.callee)) {
return new A(arg);
}
// ...
}
new 생성자 함수()
를 사용하면, 함수 내에서 this는 새로 생성한 객체를 의미한다.
하지만 new를 쓰지 않고 생성자 함수()
를 사용할 경우, 함수 내에서 this가 window를 가리키며, return 값이 없을 경우 undefined를 반환하기 때문에 에러가 발생할 수 있다.