본문 바로가기
JavaScript +HTML5 + CSS3

[Core JavaScript] 3. this

by doozzuri 2021. 8. 29.
반응형

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