Javascript

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

띵킹 2022. 3. 31. 08:32

자바스크립트의 함수는 무명의 리터럴로 생성이 가능하고, 변수나 자료구조에 저장할 수 있으며, 함수의 매개변수가 될 수 있고 반환값으로도 사용할 수 있다. 이러한 객체를 일급 객체라 부른다. 

함수가 일급 객체라는 것은 함수를 객체와 동일하게 사용할 수 있다는 의미이다. 이러한 특징은 함수형 프로그래밍을 가능하게 하는 자바스크립트의 장점 중 하나이다. 

 

함수 객체는 함수 객체 고유의 프로퍼티를 가지고 있다. 

먼저 arguments 프로퍼티는 함수 호출 시 전달된 인수들의 정보를 담고 있는 유사 배열 객체이며 함수 내부에서 지역 변수처럼 사용된다. arugments 객체는 선언된 매개변수의 갯수와 상관 없이 전달된 인수의 정보를 가진다. 이를 통해 함수의 인수 개수에 따라 동작을 달리 정의할 수 있다. 

caller프로퍼티는 함수 자신을 호출한 함수를 가리킨다. 잘 사용되지 않는다.

length프로퍼티는 함수를 정의할 때 선언한 매개변수의 개수를 가리킨다.

name프로퍼티는 함수의 이름을 가리킨다. 익명 함수의 경우 함수 객체를 가리키는 변수 이름을 값으로 갖는다. 

prototype 프로퍼티는 생성자 함수만이 소유하는 프로퍼티이다. prototype 프로퍼티는 함수가 객체를 생성할 때 생성된 인스턴스의 프로토타입 객체를 나타낸다. 

728x90