🔑 키워드 정리
일급 객체란 다음 조건을 모두 만족하는 것이다.
- 무명의 리터럴로 생성할 수 있다.
- 변수나 자료구조에 저장할 수 있다.
- 함수의 매개변수에 전달할 수 있다.
- 함수의 반환값으로 사용할 수 있다.
📗 내용 정리
자바스크립트의 함수는 일급 객체다. 함수가 일급 객체이면, 함수를 객체와 동일하게 사용할 수 있다는 뜻이다. 일반 객체와의 차이점은 함수 객체는 호출할 수 있다는 점이다. 또한 함수는 고유의 프로퍼티가 있다.
함수 객체의 프로퍼티
함수 고유의 프로퍼티에는 arguments, caller(비표준), length, name, prototype 가 있다.
arguments 프로퍼티
arguments 객체는 가변 인자 함수를 구현할 때 유용하다. 유사 배열 객체이면서 이터러블이다. 함수의 매개변수는 함수 내부에서 변수와 동일하게 취급된다. 먼저 undefined로 초기화되고 이후 인수가 할당된다. rest 파라미터를 이용해서 선언한다.
length 프로퍼티
함수를 정의할 때 선언한 매개변수의 개수를 가리킨다.
name 프로퍼티
ES5에서 name 프로퍼티는 빈 문자열을 값으로 갖는다. ES6에서는 변수 이름을 값으로 갖는다.
프로토타입에 대해선 다음 장에서 알아본다.
'Today I Learned' 카테고리의 다른 글
모던 자바스크립트 Deep Dive 20장 strict mode (0) | 2022.03.20 |
---|---|
모던 자바스크립트 Deep Dive 19장 프로토타입 (0) | 2022.03.09 |
모던 자바스크립트 Deep Dive 17장 생성자 함수에 의한 객체 생성 (0) | 2022.03.01 |
모던 자바스크립트 Deep Dive 16장 프로퍼티 어트리뷰트 (0) | 2022.03.01 |
모던 자바스크립트 Deep Dive 15장 let, const 키워드와 블록 레벨 스코프 (0) | 2022.02.21 |