반응형
javascript에서 함수(Function)는 일급 객체(First-class object)이다.
일급 객체(First-class object)란?
javascript에서 다음을 만족하여야 한다.
- 무명의 literal로 생성이 가능하다.
- 변수나 자료구조(배열(Array), 객체(Object) 등)에 할당이 가능하다.
- 다른 함수의 parameter로 전달이 가능하다.
- 다른 함수의 return으로 사용이 가능하다.
Function이 일급 객체인 이유
javascript에서 Function은 다음과 같이 가능하다.
- 무명의 literal로 생성이 가능하다.
var helloAlert = function(name){
(name + "님 환영합니다.");
}
helloAlert("world");
- 변수나 자료구조(배열(Array), 객체(Object) 등)에 할당이 가능하다.
funciton banana = {
alert('This is banana')
}
const arr = ['apple', element];
const obj = {
'a': 'apple'
'b': banana,
}
- 다른 함수의 parameter로 전달이 가능하다.
function add(number1, number2) {
return number1 + number2;
}
funciton doubleAdd(addFunc, number1, number2){
return 2 * addFunc(number1, number2)
}
doubleAdd(add, 1, 2) // result: 6
- 다른 함수의 return으로 사용이 가능하다.
function subtract(number1) {
return function(number2){
return number1 - number2;
}
}
// 다음과 같이 사용하게 되면 subtract(5)에서 subtract함수의 인자를 받고
// (8)에서 return에 있는 함수의 인자를 받아온다.
subtract(5)(8); // result: 3
// 함수는 literal로 생성이 가능하기 때문에 변수에 저장하여 사용할 수도 있다.
const subtract5 = subtract(5);
subtract5(8); // result: 3
위와 같이 함수를 다중 인수를 갖는 함수를 단일 인수를 갖는 함수들의 함수열로 바꾸는 것을 커링(Currying)이라고 한다.
커링 - https://nachocat.tistory.com/9
반응형
'Programming > Javascript' 카테고리의 다른 글
Next.js와 Svelte 비교 (1) | 2024.12.08 |
---|---|
Javascript에서 SOLID 법칙 적용하기 (0) | 2023.02.12 |
Javascript Currying(커링) (0) | 2022.12.20 |
Javascript 배열(1차원/2차원) 초기화 하기 (0) | 2022.12.17 |
Javascript 정규 표현식 (Regular Expression) 예시 (0) | 2022.12.16 |