일급함수란 무엇인가?

mgm-dev·2020년 11월 15일
0

📚TL;DR

  1. 일급 객체 : 변수나 데이터에 할당 가능, 인자로 넘기기 가능, 리턴값으로 리턴하기 가능
  1. 일급 함수 : 함수가 다른 일급 객체와 동일하게 다루어 질때, 일급 함수라고 지칭한다

일급 객체란?

여기서 객체는 당연히 OOP의 객체이다. 아래 3가지 조건을 충족하는 객체를 일급 객체로 부른다.

  1. 변수에 할당 할 수 있어야 한다.
  1. 객체의 인자로 넘길 수 있어야 한다.
  2. 객체의 리턴값으로 리턴 할수 있어야 한다.

일급 함수란?

함수를 다른 변수와 동일하게 다루는 언어는 일급 함수를 가졌다고 표현합니다. 예를 들어, 일급 함수를 가진 언어에서는 함수를 다른 함수에 매개변수로 제공하거나, 함수가 함수를 반환할 수 있으며, 변수에도 할당할 수 있습니다. MDN

&nbsp 자바스크립트와 파이썬의 함수는 일급함수이다.

변수에 할당

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

인자로 전달

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

함수를 반환

function sayHello() {
   return function() {
      console.log("Hello!");
   }
}
profile
never stop learning

0개의 댓글