유명한 담벼락

5주차 Weekly paper : 자바스크립트에서의 this

by 담담이담

this는 함수 내에서 "함수 호출 맥락"을 의미한다.

 

 

1. 함수 호출 

 

여기서 this는 전역 객체인 window를 의미한다.

함수가 어떤 객체에도 소속되어 있지 않다면,

window 객체의 메소드로 호출되었다고 생각하면 된다.

 

function func(){
    if(window === this){
        document.write("window === this");
    }
}
func(); 


// 결과값 
window === this

 

2. 메소드 호출 

 

메소드를 호출하는 그 객체를 의미한다. 

 

var o = {
    func : function(){
        if(o === this){
            document.write("o === this");
        }
    }
}
o.func();   

//결과값 
o === this

 

=> 1과 2는 같은 의미이며, 

this는 함수나 메소드가 소속된 객체를 의미한다.

 

 

3. 생성자 호출

 

var funcThis = null; 
 
function Func(){
    funcThis = this;
}
var o1 = Func();
if(funcThis === window){
    document.write('window <br />');
}
 
var o2 = new Func();
if(funcThis === o2){
    document.write('o2 <br />');
    
    
// 결과값
window 
o2

 

o1은 일반 함수 호출,

함수는 window 객체의 메소드이기에

this는 window를 의미한다.

 

o2는 생성자 호출이다.

새로 생성되는 객체가 this가 된다.

 

 

 

블로그의 정보

유명한 담벼락

담담이담

활동하기