JS에서의 함수와 일급 객체

김민찬·2023년 1월 18일
0

JavaScript

목록 보기
21/23
post-thumbnail

JS에서의 함수와 일급 객체

일급 객체란

wikipeida - 컴퓨터 프로그래밍 언어 디자인에서 일급 객체(first-class object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다.
보통 함수에 인자로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다.

일급 객체의 3가지 조건

일급 객체는 다음 3가지 조건을 모두 충족한 객체를 말한다.

  1. 모든 일급 객체는 변수나 데이터에 담을 수 있어야 한다.
  2. 모든 일급 객체는 함수의 파라미터로 전달 할 수 있어야 한다.
  3. 모든 일급 객체는 함수의 리턴값으로 사용 할 수 있어야 한다.

JS의 함수와 일급 객체(일급 함수)

  • JS의 함수는 일급 객체이며 일급 함수이다.
    • 함수를 다른 변수와 동일하게 다루는 언어는 일급 함수를 가졌다고 표현한다..
    • JS는 함수도 객체로 표현하기 때문에 일급 객체이며 일급 함수라고 말할 수 있다.

1. 모든 일급 객체는 변수나 데이터에 담을 수 있어야 한다.

  • JS의 함수 표현식을 이용해 변수에 담을 수 있다.
    • 함수가 이름을 가지고 있더라도 할당된 변수 이름을 사용해 함수를 호출할 수 있다.
const func = function() {
    console.log("I'm function");
}

2. 모든 일급 객체는 함수의 파라미터로 전달 할 수 있어야 한다.

  • 함수의 인자로 전달 가능하며 이를 콜백 함수라고 한다.
function func() {
    console.log("I'm function");
}

function sendMessage (str, func) {
    console.log(str + func())
}

sendMessage('Hello', func); // Hello I'm function

3. 모든 일급 객체는 함수의 리턴값으로 사용 할 수 있어야 한다.

  • 함수를 반환하는 함수를 고차 함수라고 한다.
function sayHello() {
    return function() {
        console.log("Hello");
    }
}

sayHello()(); // Hello

참고자료

일급 객체 - wikipedia
일급 함수 - MDN
일급 객체 - 인파

profile
두려움 없이

0개의 댓글