본문 바로가기
프로그래밍 놀이터/Web

[JavaScript/Tutorial] this 란 무엇인가? this 가 가르키는 건 무엇인가? 주의사항은?

by 돼지왕 왕돼지 2013. 5. 24.
반응형



 this 란 무엇인가? this 가 가르키는 건 무엇인가? 주의사항은?

 




[이전강좌] typeof 사용시의 주의사항, array type 판별코드.


 this 란 무엇인가?


this 키워드는, 해당 function 을 invoke 한 object 를 가르키는 데 사용된다.





this 가 가르키는 것은 어떻게 판별하는가?


1. Function.call 이나 Function.apply 를 통해 function call 을 하게 되면, call() 이나 apply() 의 첫번쨰 argument 가 this 가 된다. 만약 Function.call 이나 Function,apply 의 첫번째 argument 로 null 이나 undefined 가 들어왔다면 this는 global object 를 참조한다.


2. 만약 Function.bind 를 통해 function call 이 일어나면 this 는 bind() 의 첫번째 인자를 가르킨다.


3. 만약 function 이 object 의 method 로서 불렸다면 this 는 해당 object 를 가르킨다.


4. function 이 standalone function 이라면, this 는 global object 를 가르킨다.








주의사항은?


namespace 가 긴 함수의 경우 비교적 쉬운 이름의 variable 에 함수를 저장하여 사용하는 경우가 있는데, 이때는 this 가 가르키는 것이 무엇인지 확실히 하여 실수에 주의해아 한다.


var nameSpace={

object:{

 name:"aroundck"

sayHello:function(){

  console.log( "Hi! " + this.name );

}

}

};


var hi = nameSpace.object.sayHello;

hi(); // "Hi! undefined"


대신,

var hi = nameSpace.object;

hi.sayHello(); // Hi! aroundck.


[다음강좌] Scope. var 없이 변수 정의하면? Global variable 접근방법은?


반응형

댓글