함수를 new 라는 전치 연산자와 함께 호출하면,
호출한 함수의 prototype 속성의 값에 연결되는 프로토타입 체인을 가진 객체가 생성되고,
이 새로운 객체는 함수에서 사용한 this 에 바인딩된다.
객체 생성과 this 바인딩 :
// 1. 일반적 함수 호출 시 this 는 전역객체를 참조
function fn(){
this.fnVal = "hello";
}
fn();
window.fnVal // hello
// 2. new 연산자로 호출 시 this 는 전역객체를 참조하지 않는다.
function Obj(){
this.objVal = "hi";
}
new Obj();
window.objVal // undefined
// new 연산자로 호출시 새 객체가 생성되고 this 는 이 객체를 참조
var obj = new Obj();
obj.objVal // "hi"
함수의 prototype 속성값이 프로토타입 체인으로 연결된 객체 생성 :
function Obj(){}
Obj.prototype = {
attr : "myAttr"
}
var obj = new Obj();
obj.attr // "myAttr";

