함수를 호출할 때 결정된다.
전역 공간의 This
- 전역객체를 가리킨다.
- 브라우저 환경 : window
- Node.js : global
console.log(this);
console.log(window);
console.log(this === window); //true
- js에서 모든 변수는 특정 객체(실행 컨택스트의 렉시컬 환경)의 프로퍼티로서 동작한다.
- 전역변수 또한 전역객체의 프로퍼티로서 할당되어 사용된다.
함수와 this
- 함수를 실행할 때는 함수로서의 실행, 메서드로서의 실행 두가지가 존재한다.
- .을 붙여서 호출한다 == 해당 컨텍스트를 바인딩해서 호출한다
- 함수로서 실행하게 되면 this는 전역객체를 가리킨다.
화살표 함수의 경우..
- 화살표 함수는 es6에 들어온 내용으로, 함수 바인딩 과정을 거치지 않아 상위 환경의 this를 따라간다.
- (일반 함수는 자신만의 this를 가지고, 화살표 함수는 가지지 않는다. )
- 가져온 예시.
콜백의 경우