모자딥 18장 함수와 일급 객체

릿·2023년 2월 1일
0

18장 함수와 일급 객체

18.1 일급 객체


아래의 조건을 만족하는 객체를 일급 객체라고 함
자바스크립트의 함수 == 일급 객체

  1. 무명의 리터럴로 생성할 수 있음 (런타임에 생성 가능)
  2. 변수나 자료구조(객체, 배열 등)에 저장할 수 있음
  3. 함수의 매개변수에 전달할 수 있음
  4. 함수의 반환값으로 사용할 수 있음

18.2 함수 객체의 프로퍼티


함수는 객체이고 프로퍼티를 가질 수 있다.

  • 객체 내부 프로퍼티 확인 : console.dir
  • 내부 프로퍼티의 프로퍼티 어트리뷰터 확인 : Object.getOwnPropertyDescriptors메서드 사용
  • 함수 객체 데이터 프로퍼티 : arguments, caller, length, name, prototype

18.2.1 arguments프로퍼티 (ES3부터 폐지됨)

  • 함수 호출 시 전달된 인수들의 정보를 담고 있는 유사배열객체임
  • 초과된 인수가 암묵적으로 보관되므로 가변인자함수를 구현할 때 유용함
  • ES6이후 Rest파라미터로 대체됨

18.2.2 caller프로퍼티

  • ECMAScript사양에 포함되지 않은 비표준 프로퍼티로 함수 자신을 호출한 함수를 가리킴

18.2.3 length프로퍼티

  • 함수를 정의할 때 선언한 매개변수의 개수를 가리킴

18.2.4 name프로퍼티

  • 함수 이름을 나타냄 (ES6에서 정식 표준이 됨)

익명함수 표현식일 경우 버전에 따른 name값

  • ES5 : 빈 문자열
  • ES6 : 함수 객체를 가리키는 식별자

18.2.5 proto접근자 프로퍼티

  • [[Prototype]]내부 슬롯이 가리키는 프로토타입 객체에 접근하기 위해 사용하는 접근자 프로퍼티

18.2.6 prototype프로퍼티

  • 생성자 함수로 호출할 수 있는 함수객체만 소유하는 프로퍼티
profile
항상 재밌는 뭔가를 찾고 있는 프론트엔드 개발자

0개의 댓글