자바스크립트는 함수와 클래스의 구분이 없다.

만약 함수를 생성자로 정의하였을 때 객체를 생성하려면 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이 선언되었다.







+ Recent posts