반응형
안녕하세요 기공준입니다.
이번 글은 일급 함수의 간단한 개념을 알아보고 javascript로 예제를 작성하여 더욱 쉽게 이해해보려고 합니다.
일급 함수란?
함수가 다른 함수에 매개 변수로 제공되거나, 함수를 반환할 수 있으며, 변수에 할당하거나 데이터 구조에 저장될 수 있어야 한다고 합니다.
이런 조건들을 만족하면 일급 함수라고 표현한다고 하네요.
일급 함수는
함수형 프로그래밍 스타일에 필수이며, 고차 함수의 사용이 표준 관행이라고 합니다.
그럼 이제 예제를 작성하면서 조금 더 쉽게 이해해 보겠습니다.
예제 1 - 변수에 함수 할당
const fisrtClassFunction = function() {
consolo.log("I am fisrtClassFunction");
}
firstClassFunction();
// I am fisrtClassFunction 출력
설명 - fisrtClassfunction이라는 이름의 변수에 "I am firstClassFunction"이라는 메시지를 출력하는 익명 함수를 할당했습니다.
확인을 위해 변수명 뒤에 () 적어 함수를 호출하면 메시지가 출력됩니다.
예제 2 - 함수를 인자로 전달
function hi() {
return "Hi, ";
}
function greeting(hiMessage, name) {
console.log(hiMessage() + name);
}
greeting(hi, "angerscroll!");
// Hi, angerscroll! 출력
설명 - greeting 함수에 hi라는 함수를 인자로 전달
다른 함수에 인수로 전달된 함수를 콜백 함수라고 부릅니다. 위 예제에서 hi는 콜백 함수입니다.
예제 3 - 함수 반환
function hi(){
return function (){
console.log("Hi");
{
}
설명 - 함수가 함수를 반환하는 예제입니다.
함수를 반환하는 함수를 고차 함수라고 부릅니다.
위 예제에서 hi함수를 호출한다고 해도 hi 함수는 익명 함수를 반환할 뿐 익명 함수를 호출하지 않습니다.
그래서 hi 함수를 호출했을 때 익명 함수를 호출할 수 있도록 코드를 작성하여야 합니다.
hi함수를 호출했을 때 익명 함수를 호출할 수 있는 방법은 두 가지가 있습니다.
첫 번째는 변수에 할당하여 호출하는 방법입니다.
function hi(){
return function (){
console.log("Hi");
{
}
const hello = hi();
hello();
두 번 째는 ()()를 써서 호출하는 방법이 있습니다.
function hi(){
return function (){
console.log("Hi");
{
}
hi()();
이렇게 간단하게 일급 함수에 대해서 알아봤는데요
일급 함수에는 Funarg 문제가 있는데요
이 문제점은 또 다른 글에서 제대로 파고들어 봅시다.
반응형
'it' 카테고리의 다른 글
javascript - Array(배열) (0) | 2021.03.21 |
---|---|
콜백 함수(Callback function) with javascript (0) | 2021.03.11 |
컴퓨터 프로그램을 만드는 두 가지 방식 (초간단) (0) | 2021.03.05 |
Homebrew를 이용하여 node.js를 설치하는 방법 (초간단) (0) | 2021.03.05 |
Homebrew를 이용하여 visual-studio-code를 설치하는 방법 (초간단) (0) | 2021.03.05 |
댓글