Skip to content

Latest commit

 

History

History
24 lines (17 loc) · 1.41 KB

File metadata and controls

24 lines (17 loc) · 1.41 KB

This

this는 자기참조 변수입니다. 호출하는 대상이 속한 객체나, 생성자 함수로 만들어지는 인스턴스를 가리키는 등 호출되는 상황에 따라 다르게 해석됩니다.

상황에 따른 객체

  • 전역 실행 컨텍스트 : 전역 객체를 참조
  • 일반 함수 : strict mode에 따라 아닌 경우 전역 객체, strict mode인 경우 undefined
  • 생성자 함수 : 생성자 함수가 반환하는 객체 인스턴스를 참조
  • 메서드 : 메서드를 호출한 객체
  • 화살표 함수 : 해당 함수가 구현된 객체에 연결

직접 할당하는 방법

Function 생성자함수의 prototype에 존재하는 apply, call, bind 메서드를 이용해 모든 함수는 this를 직접 할당해 사용할 수 있습니다.

  • apply : 함수를 호출할 때 this로 사용될 객체의 값과 인수리스트배열을 전달합니다.
  • call : 함수를 호출할 때 this로 사용될 객체의 값과 인수 리스트를 전달합니다.(배열이 아님)
  • bind : this로 사용될 객체와 인수값을 바인딩해 함수를 만듭니다. 즉시 실행되지 않습니다. 변수에 할당할 수도 있고, 전달하는 목적으로 사용될 수도 있습니다.

apply와 call의 차이 : 인수값을 전달하는 형태(배열, 나열) apply,call과 bind의 차이 : 함수를 즉시 실행하는가 차이. bind의 경우 변수에 할당, 전달할 수 있음.