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과 실행 동작은 같지만,  두번째 인자를 배열로 받는점이 다르다.