Front-end/Javascript
this 바인딩
madison
2021. 3. 23. 22:17
[ this ]
- 기본적으로 this는 winodw(전역객체)를 가리킨다. 전역공간에서 전역 컨텍스트를 생성하는 주체가 전역 객체이기 때문이다.
- 어떤 함수를 메서드로서 호출한 경우 this는 메서드 호출 주체를 참조한다.
- 어떤 함수를 함수로서 호출한 경우 this는 전역객체를 참조한다.
-콜백함수 내부에서의 this는 해당 콜백 함수의 제어권을 넘겨받은 함수가 정의한 바에 따르며, 정의하지 않은 경우에는 전역객체를 참조한다.
-생성자 함수에서의 this는 생성될 인스턴스를 참조한다.
[ this에 별도의 대상을 바인딩하는 방법 ]
* call
Function.prototype.call(thisArg[, arg1[, arg2[, ...]]]) : 첫번째 인자를 this로 바인딩하고 이후 인자들을 매개변수로 사용
call 메서드는 모든 함수에서 사용할수 있으며, call 메소드 이용시 this를 특정값으로 지정할 수 있다.
* apply
call과 실행 동작은 같지만, 두번째 인자를 배열로 받는점이 다르다.