본문 바로가기

Today I Learned

모던 자바스크립트 Deep Dive 18장 함수와 일급 객체

🔑 키워드 정리

일급 객체란 다음 조건을 모두 만족하는 것이다.

  1. 무명의 리터럴로 생성할 수 있다.
  2. 변수나 자료구조에 저장할 있다.
  3. 함수의 매개변수에 전달할 있다.
  4. 함수의 반환값으로 사용할 있다.

📗 내용 정리

자바스크립트의 함수는 일급 객체다. 함수가 일급 객체이면, 함수를 객체와 동일하게 사용할 수 있다는 뜻이다. 일반 객체와의 차이점은 함수 객체는 호출할 수 있다는 점이다. 또한 함수는 고유의 프로퍼티가 있다.

함수 객체의 프로퍼티

함수 고유의 프로퍼티에는 arguments, caller(비표준), length, name, prototype 가 있다.

arguments 프로퍼티

arguments 객체는 가변 인자 함수를 구현할 때 유용하다. 유사 배열 객체이면서 이터러블이다. 함수의 매개변수는 함수 내부에서 변수와 동일하게 취급된다. 먼저 undefined로 초기화되고 이후 인수가 할당된다. rest 파라미터를 이용해서 선언한다.

length 프로퍼티

함수를 정의할 때 선언한 매개변수의 개수를 가리킨다.

name 프로퍼티

ES5에서 name 프로퍼티는 빈 문자열을 값으로 갖는다. ES6에서는 변수 이름을 값으로 갖는다.


프로토타입에 대해선 다음 장에서 알아본다.