18. 함수와 일급객체

Jun_Gyu·2025년 1월 8일
1

한 발자국 더, JS

목록 보기
11/34
post-thumbnail

1. 일급 객체의 특징 및 조건

일급 객체의 특징들은 크게 아래와 같다.

  • 변수나 자료구조에 저장 가능
  • 함수의 매개변수에 전달 가능
  • 함수의 반환값으로 사용 가능
  • 무명의 리터럴로 생성 가능하기에, 런타임에 생성 가능함.

일급객체

일급객체 함수 => 함수를 객체와 동일하게 사용할 수 있다는 뜻

여기서 함수와 일반 객체의 차이는

  • 호출유무
  • 함수만이 함수 고유의 프로퍼티를 소유(arguments, caller, length, prototype)

에 따라서 차이점이 나뉘게된다.



2. 함수 객체의 프로퍼티

1) arguments 프로퍼티

함수 호출 시에 전달된 인수의 정보를 담고 있는 순회 가능한 유사 배열 객체.

- 유사 배열 객체 : length 프로퍼티를 가진 객체로, for 반복문으로 순회 가능한 객체.

arguments 프로퍼티 값은 arguments 객체이고,

이 arguments 객체는 순회가 가능한 유사 배열 객체이며

모든 인수는 암묵적으로 arguments 프로퍼티로 보관됨.


함수 내부에서 지역변수처럼 사용할 수 있으며
(외부에서 참조 불가)

배열 형태로 인자 정보 담고있지만,

실제 배열이 아닌 유사 배열 객체이다.



2) length 프로퍼티

함수를 정의할 때 선언한 매개변수의 갯수를 나타냄.

arguments 객체함수 객체가 각각 나타내는 length 프로퍼티는 아래와 같은 차이점이 있다.

arguments 객체 : 인자의 개수를 가리킴

함수 객체 : 매개변수를 가리킴



3) name 프로퍼티

ES5에서 ES6로 넘어오면서 동작이 달라짐.

ES5의 name 프로퍼티 : 빈 문자열을 값으로 가짐.

ES6의 name 프로퍼티 : 함수 객체를 가리키는 식별자를 값으로 가짐



4) proto 접근자 프로퍼티

모든 객체는 [[Prototyoe]]이라는 내부 슬롯을 가짐.

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



5) prototype 프로퍼티

constructor만이 소유하는 프로퍼티 (일반 객체와 non- constructor에는 없음)

함수가 객체를 생성하는 생성자 함수로 호출될 때,
생성자 함수가 생성할 인스턴스의 프로토타입 객체를 가리킴.

profile
시작은 미약하지만, 그 끝은 창대하리라

1개의 댓글

comment-user-thumbnail
2025년 1월 8일

안녕하세요! 개발자 준비하시는 분이나 현업에 종사하고 계신 분들만 할 수 있는 시급 25달러~51달러 LLM 평가 부업 공유합니다~ 제 블로그에 자세하게 써놓았으니 관심있으시면 한 번 읽어봐주세요 :)

답글 달기