* * 작성 중인 글입니다. * *
고차 함수(higher order function)은 함수를 전달인자(argument)로 받을 수 있고, 함수를 리턴할 수 있는 함수.
# 빅보스
JS에서 함수는 1급 객체 함수.
콜백함수(callback fuction)는 다른 함수의 전달인자로 전달되는 함수
#제물
어떤 작업이 완료되었을 때 호출하는 경우가 많아서 답신 전화를 뜻하는 콜백함수라는 이름이 붙음.
* 콜백함수를 전달받은 고차 함수는 함수 내부에서 이 콜백 함수를 호출(invoke)할 수 있고, 조건에 따라 콜백 함수의 실행 여부를 결정 할 수도 있습니다. 아예 호출하지 않을 수도 있고, 여러 번 실행 할 수도 있다.
특정 작업의 완료 후에 호출하는 경우는 이후에 충분히 접할 수 있음.
* 함수를 리턴하는 함수 : 커링 함수 (논리학자 하스켈 커리)
* 함수를 전달인자로 받는 함수에만 한정해서 사용.
함수를 리턴하는 함수와 함수를 전달인자로 받는 함수 모두 고차 함수.
내장 고차함수
JS는 기본적으로 내장된 고차 함수가 있음.
배열 메서드들 중 일부가 대ㅠㅛ적인 고차함수에 해당
# filter
모든 배열 의 요소 중에서 특정 조건을 만족하는 요소를 걸러내는 메서드
기준이 되는 특정 조건은 filter 메서드의 전달인자로 전달.
조건은 함수의 형태로 전달 됩니다. 그래서 함수를 전달 인자로 받기 때문에 고차함수인 것.
filter 활용 예지 : 조건에서 true를 리턴하는 요소들만 모은 새로운 배열을 리턴
1. 배열의 각 요소가
2. 특정 논리(함수)에 따르면, 사실(true)일 때,
3. 따로 분류합니다.(filter)
map 활용 예시
배열의 각 요소에 콜백 함수를 적용시킨 요소를 가진 새로운 배열을 리턴
1. 배열의 각 요소가
2. 특정 논리(함수)에 의해
3. 다른 요소로 지정(map) 됩니다.
각 요소들에 접근을 해서 다른 데이터로 매핑(mapping)할 때 사용.
reduce 활용 예시
acc : 응축된 값 (콜백함수의)
cur : 현재 배열 요소
배열의 각 요소를 콜백 함수에 맞게 하나로 응축 시킨 값을 리턴 초기값을 설정하지 않으면 배열의 첫 번째 요소가 acc 임.
1. 배열의 각 요소를
2. 특정 방법(함수)에 따라
3. 원하는 하나의 형태로
4. 응축합니다.(reduce))
- 배열을 문자열로 만들 때도 사용.
-배열을 객체로 만들 때도 사용
코플릿
6번 14번
#추상화
함수를 통해 얻은 추상화를 한 단계 더 높인 것이 고차 함수.
값(배열)을 전달 받아 이 값을 가지고 복잡한 작업을 수행. : 값 수준의 추상화
코플릿 20번 map과 filter의 차이 ?? // 28 번
21번 27번 acc, cur 구분 [ 답은 나보다 훨 쉬웠음 ]
30번 살짝 도움 받음
JS는 일급 객체이기 때문에 다른 함수의 결과로서 리턴이 가능 합니다.
다 : 고차 함수로 사용할 수 있음
메서드 : 객체 안에 들어가 있는 함수
객체에 속성으로 들어가 있는 함수
'Programming > Java Script' 카테고리의 다른 글
[JS] 프로토타입 : Prototype + Class 상속 (0) | 2023.03.15 |
---|---|
[JS] JS와 OOP[객체지향 프로그래밍] (0) | 2023.03.15 |
[🍭JS기초] 원시값[primitive type]의 메서드 (자료구조와 자료형) (0) | 2023.02.04 |
[🍭JS 기초] 옵셔널 체이닝 " ?. " (Q) (0) | 2023.02.04 |
[JS 기초문법] roadmap 따라가는 여기는" Variables " 정리 파트!!💪 (0) | 2022.12.21 |