티스토리 뷰

JavaScript에서 new를 쓰지 않고 생성자 함수를 사용할 경우 에러가 발생할 수 있다. 이를 방지하기 위해 다음과 같은 코딩이 널리 사용된다고 한다.

function A(arg) {
    if (!(this instanceof arguments.callee)) {
        return new A(arg);
    }
    // ...
}

new 생성자 함수()를 사용하면, 함수 내에서 this는 새로 생성한 객체를 의미한다.

하지만 new를 쓰지 않고 생성자 함수()를 사용할 경우, 함수 내에서 this가 window를 가리키며, return 값이 없을 경우 undefined를 반환하기 때문에 에러가 발생할 수 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday