본문 바로가기

UI개발

자바스크립트 객체지향 - this

this

this는 함수 내에서 함수 호출 맥락(context)을 의미한다. 맥락이라는 것은 상황에 따라서 달라진다는 의미. 가변적이다.

 

함수를 호출했을 때 this

function func(){
    if( window === this ){
        console.log('this는 window');
    }
}

func();  // this는 window

 

메소드를 호출했을 때 this

var o = {
    func : function(){
        if(o === this){
            console.log('this는 o')
        }
    }
}
o.func(); // this는 o 메소드가 소속되어있는 객체가 this

 

생성자를 호출했을 때 this

var funcThis = null;
function Func(){ 
    funcThis = this; 
}

var o1 = Func();    	// window
var o2 = new Func();    // o2