holdanddeepdive/javascript-deep-dive

26장 ES6 함수의 추가기능 정리

Opened this issue · 1 comments

  • ES6 이전의 모든 함수는 일반 함수뿐만 아니라 생성자 함수로서도 호출할 수 있다.
    • 생성자 함수로 호출되지 않아도 프로토 타입 객체를 생성한다는 문제 있음
    • 해당 문제를 해결하기 위해 ES6에서는 함수를 일반 함수, 메서드, 화살표 함수로 명확하게 구분했다.
  • ES6 메서드
    • foo(){ } <- 메서드 축약 표현으로 정의된 함수만을 의미
    • 인스턴스를 생성할 수 없는 non-constructor
    • 자신을 바인딩한 객체를 가리키는 내부 슬롯 [[HomeObject]]를 가진다 -> super 키워드를 사용할 수 있다.
  • 화살표 함수
    • 화살표 함수는 함수 자체의 this, arguments, super, new.target 바인딩을 갖지 않고 상위 스코프의 값을 참조한다.
    • 스코프 문제 때문에 메서드를 화살표 함수로 정의하는 것은 피해야 함
  • rest 파라미터
    • 파라미터 목록을 배열로 전달받을 수 있다.