WEB/javascript
생성자 함수 안전 사용
JK-
2012. 7. 22. 21:58
자바스크립트는 함수와 클래스의 구분이 없다.
만약 함수를 생성자로 정의하였을 때 객체를 생성하려면 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이 선언되었다.