본문 바로가기
javaScript/J Query & 스크립트

First-class Function 일급함수란?

by mooyou 2022. 5. 7.
728x90
300x250

프로그래밍 언어는 다른 변수로 취급될 때 First-class Function을 가진다.

예를 들어, 함수를 다른 함수에 인수로 전달할 수 있고, 다른 함수로 리턴할 수 있으며 함수를 변수의 값으로 할당할 수도 있다.

 

변수에 함수 할당

const foo = function() {
 console.log("foobar");
}
foo(); // 변수를 사용해서 호출
//foobar

foo라는 변수에 익명함수를 할당 그리고 그 변수를 사용해서 호출

 

함수를 인자로 전달

function sayHello() {
   return "Hello, ";
}
function greeting(helloMessage, name) {
  console.log(helloMessage() + name);
}
// `sayHello`를 `greeting` 함수에 인자로 전달
greeting(sayHello, "JavaScript!");

sayHello 함수를 greeting 함수의 인자로 전달 가능하다.

 

함수리턴

function sayHello() {
   return function() {
      console.log("Hello!");
   }
}

자바스크립트에서 함수는 값으로 취급되기 때문에 또 다른 함수의 리턴 값으로도 사용 가능하다.

 

 

1- 변수 사용하기

const sayHello = function() {
   return function() {
      console.log("Hello!");
   }
}
const myFunc = sayHello();
myFunc();
// Hello!

만약 sayHello 함수를 직접적으로 호출하면 리턴 함수를 호출하는 게 아니라 함수 자기 자신을 호출한다.

그렇기 때문에 리턴 값을 호출하려면 또 다른 변수를 이용해서 호출해야 한다.

 

 

2- ()() 이중 중괄호 사용하기

function sayHello() {
   return function() {
      console.log("Hello!");
   }
}
sayHello()();

 

 

 

참고 https://developer.mozilla.org/ko/docs/Glossary/First-class_Function

728x90
반응형

댓글