JS This
업데이트:
thisBinding
- 실행컨텍스트가 활성화 되는 순간에 this가 binding
- 함수가 실행 될때 this가 바인딩 됨
this가 Binding 되는 시점
- 전역공간에서
- 함수 호출시
- 메소드 호출시
- callback 호출시
- 생성자함수 호출시
1. 전역공간에서
this는 전역객체 (window/global)
2. 함수 호출시
this는 전역객체 (window/global)
3. 매소드 호출시
this는 매소드 호출 주체 (메소드명 앞)
var a = {
b: function() {
console.log(this); // this -> a
}
}
a.b();
4. callback 호출시
this는 기본적으로 함수의 this와 같다 (전역객체)
- 제어권을 가진 함수가 callback의 this를 명시한 경우엔 그것을 따름
- 개발자가 this를 바인딩한채로 callback을 넘기면 그것을 따름
5. 생성자함수 호출시
this는 인스턴스
function person(n,a) {
this.name = n ;
this.age = a;
}
var sun = new person ('태양', 30);
console.log(sun);