일급 객체의 특징들은 크게 아래와 같다.
- 변수나 자료구조에 저장 가능
- 함수의 매개변수에 전달 가능
- 함수의 반환값으로 사용 가능
- 무명의 리터럴로 생성 가능하기에, 런타임에 생성 가능함.
일급객체 함수 => 함수를 객체와 동일하게 사용할 수 있다는 뜻
여기서 함수와 일반 객체의 차이는
에 따라서 차이점이 나뉘게된다.
함수 호출 시에 전달된 인수의 정보를 담고 있는 순회 가능한 유사 배열 객체.
- 유사 배열 객체 : length 프로퍼티를 가진 객체로, for 반복문으로 순회 가능한 객체.
arguments 프로퍼티 값은 arguments 객체이고,
이 arguments 객체는 순회가 가능한 유사 배열 객체이며
모든 인수는 암묵적으로 arguments 프로퍼티로 보관됨.
함수 내부에서 지역변수처럼 사용할 수 있으며
(외부에서 참조 불가)
배열 형태로 인자 정보 담고있지만,
실제 배열이 아닌 유사 배열 객체이다.
함수를 정의할 때 선언한 매개변수의 갯수를 나타냄.
arguments 객체
와 함수 객체
가 각각 나타내는 length 프로퍼티는 아래와 같은 차이점이 있다.
arguments 객체
: 인자의 개수를 가리킴
함수 객체
: 매개변수를 가리킴
ES5에서 ES6로 넘어오면서 동작이 달라짐.
ES5의 name 프로퍼티 : 빈 문자열
을 값으로 가짐.
ES6의 name 프로퍼티 : 함수 객체를 가리키는 식별자
를 값으로 가짐
모든 객체는
[[Prototyoe]]
이라는 내부 슬롯을 가짐.
proto프로퍼티는 [[Prototyoe]]
내부 슬롯이 가리키는 프로토타입 객체에 접근하기 위해 사용되는 접근자 프로퍼티.
constructor만이 소유하는 프로퍼티 (일반 객체와 non- constructor에는 없음)
함수가 객체를 생성하는 생성자 함수로 호출될 때,
생성자 함수가 생성할 인스턴스의 프로토타입 객체를 가리킴.
안녕하세요! 개발자 준비하시는 분이나 현업에 종사하고 계신 분들만 할 수 있는 시급 25달러~51달러 LLM 평가 부업 공유합니다~ 제 블로그에 자세하게 써놓았으니 관심있으시면 한 번 읽어봐주세요 :)