티스토리 뷰
자바스크립트에서 '일급 객체(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] ag-Grid 기본 사용법 (0) | 2024.11.21 |
---|---|
[JS] HTTP 상태 코드 (0) | 2024.10.10 |
[JS] 고차 함수 (Higher-Order Function) (0) | 2024.08.01 |
[JS] 유사배열 (0) | 2024.08.01 |
[JS] 블록스코프(Block Scope)가 생긴 이유 (0) | 2024.07.17 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- SQLD
- 배열 만들기3
- 신입개발자 면접 준비
- 호이스팅
- SQL 개발자
- 브라우저의 기본 구조
- rep;ㅁce
- fsd 구조
- Java
- startsWith()
- nodelist
- 배열만들기1
- n 번째 원소부터
- 프로그래머스
- replaceAll
- replace와 replaceAll의 차이점
- 스코프
- StringBuilder
- 마진과 패딩의 차이점
- 문자열 반복하기
- 콜백 큐
- 블록스코프
- Object.clone()
- 렌더링 과정
- 대소문자 변환
- fsd 아키텍처
- Replace
- 엑셀 파일 추출
- useeffet
- 중첩스코프
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함