JavaScript ES5 ( OOP )

◎ 생성자 호출 패턴

함수를 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";

 

댓글

댓글 본문