This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

일급 함수

프로그래밍 언어는 해당 언어의 함수들이 다른 변수처럼 다루어질 때 일급 함수를 가진다고 합니다. 예를 들어, 일급 함수를 가진 언어에서 함수는 다른 함수들에 전달인자로 제공되고, 다른 함수에 의해 반환될 수 있으며, 변수에 값으로서 할당될 수 있습니다.

예제

>

변수에 함수 할당

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

변수에 '익명함수'를 할당한 다음, 끝에 괄호 ()를 추가하면서 함수를 호출할 해당 변수를 사용합니다.

참고 : 함수가 이름을 가지고 있더라도, 변수 이름을 사용하여 함수를 호출할 수 있습니다. 함수에 이름을 지정하는 것은 코드를 디버깅할 때 도움이 됩니다. 하지만 함수를 호출하는 방식에는 영향을 미치지 않을 것입니다.

함수에 인자로 전달

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

sayHello() 함수를 greeting() 함수에 전달인자로 전달하는데, 이것은 함수를 값으로서 어떻게 다루는지 설명합니다.

참고 : 다른 함수에 전달인자로 전달하는 함수를 콜백 함수라고 합니다. sayHello()는 콜백 함수입니다.

함수 반환

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

이번 예제에서, 다른 함수로부터 함수를 반환합니다. JavaScript에서 함수들은 값들로서 다루어질 수 있기 때문에 함수를 반환할 수 있습니다.

참고 : 함수를 반환하거나 다른 함수들을 전달인자로서 사용하는 함수를 "고차 함수"라고 합니다.

같이 보기