[JS] 코어자바스크립트 _ 3장 : this

이지·2021년 1월 24일
0

JavaScript

목록 보기
3/3

1. this

: 함수를 호출할 때 = 실행컨택스트가 생성될 때 , 함께 생성된다.

함수 vs 메서드?

함수란 독립적인 기능을 수행하는 것인 반면 메서드는 호출한 대상 객체에 관한 동작을 의미한다.

2. this 바인딩

함수 실행 당시의 주변환경이 아닌, 해당 함수 호출 구문 앞에 점 또는 대괄호의 유무가 관건.
(없다면 this 에는 전역객체가 binding 된다.)

그렇다면 호출 당시의 환경을 그대로 상속 받을수는 없을까?

3. method 함수 내부에서의 this 우회

  • 변수선언 var self = this;
  • 화살표함수 : this 를 바인딩 하지 않는 함수
  • 콜백 함수 호출 시 그 함수 내부에서의 this
  • 생성자함수(class) 내부에서의 this

4. 명시적으로 this 바인딩

- Call method (호출 주체인 함수를 즉시 실행)

ex. func.call ({x:1}, 4,5,6) ;    첫번째 인자를 this로 바인딩. 

- Apply method

ex. obj.method.apply ({a:4},[5,6]); 두 번째 인자를 배열로 받는다. 

5. Call & Apply 활용법

  • 유사배열 객체(key : 숫자, length value: 숫자 )
  • 생성자 내부에서 다른 생성자를 호출 (다른 생성자와 공통된 내용이 있을 경우)
  • 여러 인수를 묶어 하나의 배열로 만들고 싶을 때.

6. Bind (method)

: 새로운 함수를 반환할 뿐 즉시 호출되지 않는다. name property 를 가진다. (bound)

7. 화살표 함수의 예외상황

: 실행 context 생성시 this binding 이 제거-> scope chain 상 가장 가까운 This에 접근 (간결하고 편리)

8. Call back 함수에서의 this

  • ex) forEach, map, filter ...
profile
이지피지레몬스퀴지🍋

0개의 댓글