반응형
1. this
- 실행컨텍스트가 활성화 될때 ThisBinding함
- 함수가 호출될 때 결정된다.
2. 호출하는 방식에 따른 this
2.1. 전역공간에서
2.1.1. 전역객체
- host객체
- 런타임에 따라 전역객체가 달라짐.
- ECMAScript가 전역객체 정의 해둔 내용에 따라 런타임에서 제공하는 내용.
- 브라우저 - window
- nodeJS - global
2.2. 함수를 함수호출시
- 전역객체
- 함수를 호출하는 순간에 전역공간에서 호출하는 것.
- ES6 에서는 아예 thisBinding을 하지 않는 arrow function 이 나옴.
- arrow function은 바로 위 컨텍스트에 있는 this를 그대로 가져다 씀.
2.3. 함수를 메서드로 호출시
- 메서드를 호출한 주체(메서드명 앞)
- 호출된 대상객체가 바인딩됨.
- 메서드 내부함수에서의 우회법
- 변수 이름을 다르게 쓰자. scope chain을 이용. - ES5 에서는 call, aply
- ES6 에서는 arrow function
2.4. 함수를 callback으로 호출시
- 기본적으로는 함수내부에서와 동일
- 명시적인 this 바인딩 - call / apply / bind
- call : func.call(thisArg[, arg1[, arg2[, ...]]])
- apply : func.apply (thisArg, [ argsArray])
- bind : func.bind (thisArg[, arg1[, arg2[, ...]]]
2.5 함수를 생성자 함수로 호출시
- new 연산자를 썼다 = 생성자 함수의 내용을 바탕으로 인스턴스 객체를 만든다.
- this = 인스턴스
반응형
'JavaScript +HTML5 + CSS3' 카테고리의 다른 글
[Core JavaScript] 5. closure (0) | 2021.08.29 |
---|---|
[Core JavaScript] 4. callback function (0) | 2021.08.29 |
[Core JavaScript] 2. Execution context (0) | 2021.08.29 |
[Core JavaScript] 1. Data Type (0) | 2021.08.29 |
[JQuery] Ajax (0) | 2021.08.16 |