자바스크립트는 함수와 클래스의 구분이 없다.
만약 함수를 생성자로 정의하였을 때 객체를 생성하려면 new 키워드를 사용해야 한다.
하.지.만.
실수로 new 를 사용하지 않고 객체를 생성하게 되면 전역 유효범위에 프로퍼티가 생성되는 역효과가 발생한다.
function Person(name) { this._name = name; } var p = Person("pp"); // new를 빼먹었다!!!! console.log(typeof p); // "undefined" console.log(typeof _name); // "pp" // 전역(함수 바디의 this가 전역을 가리킴)에 _name이 선언되었다.
'WEB > javascript' 카테고리의 다른 글
자바스크립트 함수 hoisting (0) | 2012.07.27 |
---|---|
자바스크립트 함수 객체의 name 프로퍼티 (0) | 2012.07.27 |
객체 생성자의 함정 (0) | 2012.07.22 |
자바스크립트 리터럴 표기법 (0) | 2012.07.22 |
eval() 안전하게 사용하는 방법 (0) | 2012.07.22 |