728x90
함수와 일급 객체
- 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다.
- 변수나 자료구조(객체, 배열 등)에 저장할 수 있다.
- 함수의 매개변수에 전달할 수 있다.
- 함수의 반환값으로 사용할 수 있다.
자바스크립트의 함수는 위의 조건을 모두 만족하므로 일급 객체다.
arguments 객체
function sum() {
let res = 0;
// arguments 객체는 length 프로퍼티가 있는 유사 배열 객체이므로 for 문으로 순회할 수 있다. (배열 메서드는 불가)
for (let i = 0; i < arguments.length; i++) {
res += arguments[i];
}
return res;
}
console.log(sum()); // 0
console.log(sum(1, 2)); // 3
console.log(sum(1, 2, 3)); // 6
// ES6 Rest parameter
function sum(...args) {
return args.reduce((pre, cur) => pre + cur, 0);
}
console.log(sum(1, 2)); // 3
console.log(sum(1, 2, 3, 4, 5)); // 15
'공부공부 > JS 딥다이브' 카테고리의 다른 글
[js 딥다이브] 20장 strict mode (0) | 2023.10.26 |
---|---|
[js 딥다이브] 19장 프로토타입 (0) | 2023.10.26 |
[js 딥다이브] 17장 생성자 함수에 의한 객체 생성 (0) | 2023.10.26 |
[js 딥다이브] 16장 프로퍼티 어트리뷰트 (1) | 2023.10.26 |
[js 딥다이브] 15장 let, const 키워드와 블록 레벨 스코프 (0) | 2023.10.19 |