티스토리 뷰
자바스크립트에서 '일급 객체(first-class citizen)'는 특정 객체가 다른 객체와 동일하게 취급될 수 있는 능력을 의미한다.
일급 객체의 조건
- 변수에 할당 가능 : 객체를 변수에 할당할 수 있다.
- 인수로 전달 가능 : 객체를 함수의 인수로 전달할 수 있다.
- 반환값으로 사용 가능 : 객체를 함수의 반환값으로 사용할 수 있다.
자바스크립트에서는 객체, 배열과 더불어, 함수도 일급 객체로 취급됩니다. 즉, 함수는 변수에 할당할 수 있고, 다른 함수에 인수로 전달할 수 있으며, 다른 함수에서 반환할 수도 있습니다. 이로 인해 자바스크립트는 고차함수(Higher-order function)를 지원하며, 이는 함수형 프로그래밍의 중요한 특성입니다.
ex ) 1. 함수가 변수에 할당됨
const mul = (num) => {
return num * num;
}
ex) 2. 함수가 다른 함수에 인수로 전달됨
함수가 일급객체이기에 콜백 함수를 사용할 수 있다. 다른 함수의 인자로 전달되는 함수를 콜백 함수라고 한다.
button.addEventListener('click', () => {console.log("button click"});
ex) 3. 함수가 반환값으로 사용됨
함수가 일급객체이기에 고차함수를 만들 수 있다. 함수를 인자로 전달받거나 함수를 결과로 반환하는 함수를 고차함수라고 한다.
const ex1 = () => {
return () => {
console.log('hello');
}
}
함수가 일급객체의 특성을 갖고있기 때문에 다른 데이터처럼 자유롭게 사용될 수 있음을 의미하며 따라서, 고차함수, 콜백함수 등 다양한 고급패턴을 사용할 수 있게 된다.
고차함수
'고차 함수(Higher-Order Function)'는 다른 함수를 인수로 받거나, 함수를 반환하는 함수를 말한다.
일급 객체로서의 함수의 특성을 활용하여, 다른 함수를 인수로 받거나 반환하는 함수인 고차함수를 사용할 수 있습니다.
ex) 'map' : 배열의 각 요소에 대해 주어진 콜백 함수를 호출하고, 그 결과를 모아 새로운 배열을 반환한다.
const numArray = [1, 2, 3, 4, 5];
const numArrayMap = numArray.map(function (x) { // 일급 객체를 인수로 전달
return x * x;
});
console.log(numArrayMap); // [1, 4, 9, 16, 25]
'JavaScript' 카테고리의 다른 글
[JS] HTTP 상태 코드 (0) | 2024.10.10 |
---|---|
[JS] exceljs 사용하여 JS데이터를 엑셀 파일로 추출 (0) | 2024.08.14 |
[JS] 고차 함수 (Higher-Order Function) (0) | 2024.08.01 |
[JS] 유사배열 (0) | 2024.08.01 |
[JS] 블록스코프(Block Scope)가 생긴 이유 (0) | 2024.07.17 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Java
- 네트워크 접속장치
- 프로그래머스
- StringBuilder
- 대소문자 변환
- startsWith()
- 엑셀 파일 추출
- 운영체제
- 네트워크
- 콜백 큐
- fsd 구조
- 운영체제 유형
- SQL 개발자
- useeffet
- 블록스코프
- 컴퓨터 시스템 구성요소
- 스코프
- replaceAll
- 자료처리시스템
- SQLD
- 중첩스코프
- 온라인처리
- 범용리스트
- fsd 아키텍처
- 구성형태
- Replace
- 자료구조
- 운영체제 특징
- 호이스팅
- 접속형태
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함