본문 바로가기

JAVASCRIPT

apoly, call 과 this

let o = {}
let p = {}
function func(){
    switch(this){
        case o:
            document.write('o<br />');
            break;
        case p:
            document.write('p<br />');
            break;
        case window:
            document.write('window<br />');
            break;          
    }
}
func();
func.apply(o);
func.apply(p);

 

func() 로서 호출하게 되면 이 this의 값은 window가 됩니다.

 

그럼 세번째가 실행됩니다. 그다음 break문이 실행되서 끝납니다.

 

 

두 번째

func.apply (o) 첫번째 인자로 this의 값은 o으로 되서 첫번째문 실행

입니다.

 

 

 

func.apply (o)하면 o라는 객체의 메소드가되고

func.apply (p)하면 p라는 객체의 메소드가됩니다.

 

 

함수는 어떻게 호출하느 냐 에 따라서 window에서 불러지기도 하고 o라는 객체 p라는 객체에서

불리기도 합니다.

 

함수가 어떠한 소속이냐에 따라 this에 값은 다릅니다.

 

이글은 생활코딩을 참고해서 만든 포스팅입니다. egoing님 감사합니다.

'JAVASCRIPT' 카테고리의 다른 글

상속 기능의 추가  (0) 2020.11.09
상속 과정편  (0) 2020.11.09
this 객체로서의 함수  (0) 2020.11.05
this  (0) 2020.11.05
생성자와 new 객체지향  (0) 2020.11.04