화살표 함수에 없는 3가지
2020. 10. 22. 20:08ㆍ웹 프론트엔드 깊게 이해하기/자바스크립트 이해하기
기존의 function () {} 과는 달리, 화살표 이름에는 함수 이름, this, arguments 가 없습니다.
함수 이름이 없다는 것은 화살표 함수는 익명 함수로만 동작한다는 뜻일 뿐입니다.
기존의 함수에서는 this라는 변수 이름으로 함수 스코프 안에서 자기 자신에 접근할 수 있는 방법이 제공되었습니다. 하지만 화살표 함수에서는 이게 없기 때문에, 스코프의 원칙 상, 상위 스코프에서 this 라는 변수명을 찾아보게 되고, 그러면 결국 상위 함수의 this나 전역 객체인 window 를 화살표 함수 안에서 불러오게 되는 것입니다.
bind를 써도, apply, call을 써도 this를 주입할 수가 없습니다.
따라서 화살표 함수로는 new 키워드를 쓸 수 없습니다.
또한 기존의 function 에는 this 처럼 스코프 안에 기본으로 들어가는 변수로 arguments 라는 것이 있습니다. 이는 function 을 선언할 때, 따로 매개변수를 설정하지 않더라도 호출될 때 매개변수를 받았다면 그 매개변수들이 담기는 배열 형식의 변수입니다.
그러니 화살표 함수에서 매개변수 부분에 ...args 를 넣으면 args 라는 배열 변수에 해당 화살표 함수에 넘겨지는 매개변수들이 담깁니다.
'웹 프론트엔드 깊게 이해하기 > 자바스크립트 이해하기' 카테고리의 다른 글
객체 지향 프로그래밍의 원칙 (0) | 2020.12.13 |
---|---|
객체 및 프로토타입 (0) | 2020.11.26 |
ES6 import & export (0) | 2020.10.22 |
THIS 의 이해 (0) | 2020.10.22 |
클로저 & 스코프 체인 (0) | 2020.10.22 |