Higher-Order Function(basic)

choijw1116·2020년 9월 29일
0

Codestates

목록 보기
3/4
post-thumbnail

함수 선언식

function declaration(){
  return 'a function declaration';
}
declaration();

함수 표현식

let expression = function(){
  return 'a function expression';
}
expresssion();

First-Class Object

First Class Citizens(1급시민의 조건)

  1. variable에 담을 수 있다.
  2. parameter로 전달할 수 있다.
  3. return value로 전달할 수 있다.

First Class Object

1급 객체는 특정언어에서 object를 1급시민 취급하는 것. 위의 First Class Citizens의 조건도 모두 충족한다.

JavaScript에서는 객체를 First-Class Citizens로 취급하며, Function 또한 First Class Object로 취급한다.

Higher Order Function(고차함수)

Function이 First Class Object 인 사실이 중요한 이유는 고차함수 때문이다.
고차함수는 함수는 argument(인자)로 받거나 함수를 return하는 function을 말한다. 이때 다른함수(Caller)의 argument(인자)로 전달되는 함수를 ~~Callback Function~~이라고 한다.

Built-in Hight Order Functions

JavaScript에는 기본적으로 Built-in 내장되어있는 고차함수가 있다. Array method들중 일부가 고차함수에 해당된다. 그 중 하나인 .filter에 대해서 알아보자. 배열의 filter 메소드는 배열의 요소들중 특정 조건을 만족하는 요소들만 걸러낸다. ex) number를 요소로 갖는 배열중, 짝수만 거르기 / 18보다 작은 수 거르기 / string을 요소로 가지는 배열 중 길이가 10이하인 문자열만 거르기 를 들 수 있겠다.

여기서 걸러내는 특정기준filter method의 parameter가 함수형태 로 전달 되어야한다. filter method는 parameter로 전달되는 callback function에 배열의 요소를 다시 전달하고, callback function은 배열의 요소를 받아서 조건에 따라 true, false를 return해야한다.

화살표함수가 뭐지?

=>가 자주 눈에 띄어서 조금 찾아보았다.

   (매개변수)       =>   { /*실행내용*/}
(함수에 쓰이는 변수)       (실제 실행 내용)

매개변수 부분에는 익명함수의 작동에 필요한 변수들을 넣어준다.
그렇지만 기존의 function을 대체할수 없는 부분이 있다.
화살표함수는 오직 코드를 담고 실행하는것에 초점이 맞추어져 있다.
즉, prototype도 없고, 생성자체도 불가능하다.

profile
와니완의 월드와이드와니웹🐥

0개의 댓글