자바스크립트로 알아보는 함수형 프로그래밍 정리노트 #2

2019. 9. 15. 18:15Programming/JavaScript

반응형

이 글은 인프런에서 게재되어있는, 유인동 님의 자바스크립트로 알아보는 함수형 프로그래밍을 수강하면서 정리한 노트입니다. 제가 잘못 이해하거나 정리한 내용이 있다면 댓글로 알려주세요. 확인하는대로 수정하도록 하겠습니다. :)

일급 객체(First Class)

  • 자바 스크립트에서는 함수가 일급 객체(First Class)이다. 일급 객체는 다음과 같은 특성을 지닌다.
    • 리터럴에 의해 생성된다.
    • 변수나 배열의 요소, 객체의 프로퍼티 등에 할당이 가능하다.
    • 함수의 인자로 전달이 가능하다.
    • 함수의 리턴 값으로 반환이 가능하다.
    • 동적으로 프로퍼티를 생성하거나, 할당하는 게 가능하다.

add_maker()

  • 다음의 예제를 살펴보도록 하자.

    function add_maker(a) {
      return function(b) {
        return a + b;  
      }   
    }
    var add10 = add_maker(10);
    console.log(add10(20)); //print 30

    위 함수는 변수 a를 인자로 받아, 인자로 전달받은 변수 b를 함산하여 반환하는 함수를 반환한다. add_maker(10)을 호출하면 클로저(add_maker의 내부에서 반환하는 함수는 add_maker로 전달된 인자 a를 참조하고 있으므로, 스코프 내에서 a를 기억하는 클로저가 된다.)가 생성되며, 10+b를 반환하는 함수가 add10에 할당되게 된다. 즉, add_maker일급 객체클로저라는 개념이 함께 사용된 셈이다.

참고:

자바스크립트로 알아보는 함수형 프로그래밍 #1, 인프런

함수는 일급 객체이다, by webclub.tistory.com

반응형