프로그래밍 언어/JavaScript
[자바스크립트 필기] #12 - 함수와 일급 객체
SpaceCowboy
2021. 8. 5. 17:36
*이 필기는 웹 프로그래밍 튜토리얼에서 보고 작성합니다.
1. 일급 객체
다음 조건을 만족하는 객체를 일급 객체라 한다.
- 무명의 리터럴로 생성 가능 - 즉, 런타임에 생성 가능
- 변수나 자료구조(객체, 배열 등)에 저장할 수 있음
- 함수의 매개변수에 전달할 수 있음 - 가장 큰 특징
- 함수의 반환값으로 사용 가능
// 함수는 무명의 리터럴로 생성할 수 있다.
// 함수는 변수에 저장할 수 있다.
const increase = function (num) {
return ++num;
};
// 함수는 객체에 저장할 수 있다.
const predicates = { increase };
// 함수의 매개변수에 전달할 수 있다.
// 함수의 반환값으로 사용할 수 있다.
function makeCounter(predicate) {
let num = 0;
return function () {
num = predicate(num);
return num;
};
}
// 함수는 매개변수에게 함수를 전달할 수 있다.
const increaser = makeCounter(predicates.increase);
console.log(increaser());
console.log(increaser());
2. 함수 객체의 프로퍼티
arguments 프로퍼티 이 프로퍼티의 값은 arguments 객체이다. 이 객체는 함수 호출 시 전달된 인수들의 정보를 담고 있는 순회 가능한 유사 배열 객체이고, 함수 내부에서 지역 변수처럼 활용될 수 있다. |
length 프로퍼티 함수 매개변수의 개수를 가리킨다. |
name 프로퍼티 함수 이름을 나타낸다. |
__proto__ 접근자 프로퍼티 모든 객체는 [[Prototype]] 이라는 내부 슬롯을 가진다. 이는 상속을 구현하는 프로토타입 객체를 가리킨다. __proto__는 이 내부 슬롯에 접근하기 위해 사용하는 프로퍼티이다. |
prototype 프로퍼티 생성자 함수로 호출할 수 있는 함수 객체가 소유하는 프로퍼티이다. |
여기까지 입니다 - 틀린 점이 있다면 꼭 지적해주세요!