this 키워드
- 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수
- 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메소드 참조 가능
- 함수가 호출되는 방식에 따라 this에 바인딩 될 값, this 바인딩이 동적으로 결정
함수 호출 방식과 this 바인딩
this 바인딩 : 함수 호출 방식에 따라 동적으로 결정됨
함수 호출 방식
- 일반 함수 호출 : this에는 전역 객체가 바인딩 됨
- 메서드 호출 : 메서드를 호출한 객체 앞에 기술한 객체가 바인딩됨
- 생성자 함수 호출 : 생성자 함수 내부의 this에는 생성자 함수가 생성할 인스턴스가 바인딩 됨
- Function.prototype.apply.call/bind 메서드 : 메서드에 첫 번째 인스로 전달한 객체