객체지향 언어에서 this는 클래스로 생성한 인스턴스 객체를 의미하며, 클래스에서만 사용할 수 있다.
반면, 자바스크립트에서의 this는 어디서든 사용할 수 있다.
자바스크립트에서 this는 기본적으로 실행 컨텍스트가 생성될 때 함께 결정된다. 실행 컨텍스트는 함수를 호출할 때 생성되므로, this는 함수를 호출할 때 결정된다고 볼 수 있다.
함수와 메서드는 정의한 동작을 수행하는 코드 뭉치로, 이 둘을 구분하는 유일한 차이는 독립성이다.
⭐⭐ 매우 중요 !
- 함수 내부에서의 this : 전역객체
=> this가 지정되지 않은 경구 this는 전역 객체를 바라보기 때문.- 메서드 내부에서으l this : 함수명(프로퍼티명) 앞의 객체
1) call, apply 메서드는 this를 명시적으로 지정하면서 함수 또는 메서드를 호출한다.
2) bind 메서드는 this 및 함수에 넘길 인수를 일부 지정해서 새로운 함수를 만든다.
3) 요소를 순회하면서 콜백함수를 반복 호출하는 내용의 일부 메서드는 별도의 인자로 this를 받기도 한다.