[JS] First-Class citizen and Higher-Order functions

JunSeok·2023년 12월 13일
0

Javascript

목록 보기
9/16

First-Class citizen function

  • 자바스크립트에서 함수는 1급시민으로 취급된다.

    함수는 value라는 의미이다.

  • 동작 원리
    -> 자바스크립트에서 원시값을 제외한 모든 값은 객체이다.
    -> 원시값이 아닌 함수는 또 다른 타입의 객체이다.
    -> 객체도 값이기 때문에 함수도 값이다.

특징

  • 함수를 변수에 저장할 수 있다.
  • 함수를 객체의 메서드로 저장할 수 있다.
  • 이벤트리스너에 handler를 추가할 때, 함수에 대한 인수로 함수를 전달할 수 있다.(콜백함수)
  • 다른 함수에서 함수를 리턴할 수 있다.(closure)
  • 함수는 또 다른 타입의 객체이기 때문에 함수도 메서드가 있다. 이를 bind method라 한다.

Higher-Order function

고차원 함수는 다른 함수를 인수로 받거나 새 함수를 반환하는 함수이다.

다른 함수를 인수로 받는 고차원 함수

  • 이벤트 리스너에 핸들러를 추가할 때 전달되는 함수를 보통 콜백함수라 하는데, 이 콜백함수를 호출하는 이벤트리스너와 같은 함수를 고차원 함수라 한다.

다른 함수를 반환하는 고차원 함수

  • 대표적으로 클로저(closure)가 있다.
  • 함수형 프로그래밍에서 아주 유용하다.

참조

https://developer.mozilla.org/ko/docs/Glossary/First-class_Function
https://www.udemy.com/course/the-complete-javascript-course/

profile
최선을 다한다는 것은 할 수 있는 한 가장 핵심을 향한다는 것

0개의 댓글