화살표 함수에 없는 3가지

2020. 10. 22. 20:08웹 프론트엔드 깊게 이해하기/자바스크립트 이해하기

기존의 function () {} 과는 달리, 화살표 이름에는 함수 이름, this, arguments 없습니다.

 

함수 이름이 없다는 것은 화살표 함수는 익명 함수로만 동작한다는 뜻일 뿐입니다.

 

기존의 함수에서는 this라는 변수 이름으로 함수 스코프 안에서 자기 자신에 접근할 있는 방법이 제공되었습니다. 하지만 화살표 함수에서는 이게 없기 때문에, 스코프의 원칙 , 상위 스코프에서 this 라는 변수명을 찾아보게 되고, 그러면 결국 상위 함수의 this 전역 객체인 window 를 화살표 함수 안에서 불러오게 되는 것입니다.

 

bind 써도, apply, call 써도 this 주입할 수가 없습니다.

 

따라서 화살표 함수로는 new 키워드를 없습니다.

 

또한 기존의 function 에는 this 처럼 스코프 안에 기본으로 들어가는 변수로 arguments 라는 것이 있습니다. 이는 function 선언할 , 따로 매개변수를 설정하지 않더라도 호출될 매개변수를 받았다면 매개변수들이 담기는 배열 형식의 변수입니다.

 

그러니 화살표 함수에서 매개변수 부분에 ...args 넣으면 args 라는 배열 변수에 해당 화살표 함수에 넘겨지는 매개변수들이 담깁니다.