일급 함수

Siwoo Pak·2021년 6월 3일
0

Javascript

목록 보기
14/34

일급 객체(first-class citizen)의 세 가지 특징을 설명할 수 있다.

  • 변수에 할당(assignment) 할 수 있다.
const foo = () => console.log('foobar');
foo()
  • 다른 함수의 인자(argument)로 전달될 수 있다.(call back)
function sayHello() {
   return "Hello, ";
}
//매개변수로 function과 문자열을 받는 greeting()
function greeting(helloMessage, name) {
  console.log(helloMessage() + name);
}
// `sayHello`를 `greeting` 함수에 인자로 전달
greeting(sayHello, "JavaScript!");
  • 다른 함수의 결과로서 리턴될 수 있다(클로저)
function adder(added) {
  return function (num) {
    return num + added;
  };
}
/*
 * 함수 adder는 다른 함수를 리턴하는 고차 함수입니다.
 * adder는 인자 한 개를 입력받아서 함수(익명 함수)를 리턴합니다.
 * 리턴되는 익명 함수는 인자 한 개를 받아서 added와 더한 값을 리턴합니다.
 */

// adder(5)는 함수이므로 함수 호출 연산자 '()'를 사용할 수 있습니다.
let output = adder(5)(3); // -> 8
console.log(output); // -> 8

// adder가 리턴하는 함수를 변수에 저장할 수 있습니다.
// javascript에서 함수는 일급 객체이기 때문입니다.
const add3 = adder(3);
output = add3(2);
console.log(output); // -> 5
profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글