일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 캐럿마켓클론
- CSS
- 1931번문제
- 노마드코더
- 개발자필독서
- 이벤트위임예제
- 이벤트위임
- 그리디알고리즘
- 클린코드
- 실용주의프로그래밍
- JavaScript
- 취업준비중..
- JS비동기처리
- 개발자
- 자바스크립트스터디
- 리액트의탄생
- 노개북
- 개발자필독서?
- 코딩
- 프로그래머스
- 프론트엔드 개발을 위한 자바스크립트 (feat. VanillaJS)
- 실용주의프로그래머
- 북클럽
- 2월기념일을위해서달리자
- 11399번문제
- 이펙티브타입스크립트
- 취업준비중
- 백준문제풀이
- 시작
- 노마드북클럽
Archives
- Today
- Total
파카
일급함수, 일급객체란 ? 본문
일급객체에 대해 찾아보면 아래와 같은 내용을 볼 수 있다.
일급객체는 아래와 같은 특징을 가지고 있다.
- 변수나 데이타에 할당 할 수 있어야 한다.
- 객체의 인자로 넘길 수 있어야 한다.
- 객체의 리턴값으로 리턴 할수 있어야 한다.
일급함수
프로그래밍 언어에서 함수라고 하는 코드의 묶음을 일반적인 값처럼 취급한다는 말을 말한다.
즉 일반적인 값처럼 변수에 값을 넣을 수 있다.
인자로 받는 값이 함수가 될 수도
리턴받는 값이 함수일 수도..
일급함수이자 일급객체에 대해
글로보고 충분히 이해가 가면 좋지만
역시 코드로 보는게 더 이해하기 쉬울 거 같다.
코드를 통해 알아보자
크게 2가지 경우로 나눌 수 있는 거 같다.
case 1
// 간단한 예제를 작성해보자
// 인자로 함수가 들어옴
let add = calculate(4,5);
console.log(add()); // 9
function calculate2(val, func) { // 함수를 인자로 전달! call back function
return func(5, val);
}
function addValue(a, b) {
return a + b;
}
console.log(calculate2(7, addValue)); // expected output : 12
case 2
// 반환 값으로의 함수
function salePrice(discountRate, price) {
return price - (price * (discountRate * 0.01));
}
console.log("여름 세일 - " + salePrice(30, 567000));
console.log("겨울 세일 - " + salePrice(10, 567000));
function discountPrice(discountRate) {
return function (price) {
return price - (price * (discountRate * 0.01));
}
}
console.log("여름 세일 - " + discountPrice(30)(567000));
console.log("겨울 세일 - " + discountPrice(10)(567000));
// 이 부분의 예제를 보면서 왜? 사용해면 좋은 부분이 있을까에 대해 이해되었다..
let summerPrice = discountPrice(30);
let winterPrice = discountPrice(10);
console.log("여름 세일 - " + summerPrice(567000));
console.log("겨울 세일 - " + winterPrice(567000));
예제 코드를 보면 알 수 있지만 특히나
반환 값으로 함수를 사용할 경우에는 코드 가독성을 높이는데 도움을 줄 수 있다.
결론을 정리하면
JavaScript 에선 함수도 값으로 취급된다.
함수를 즉시 호출하지 않고 변수에 담아서 활용한다.
변수의 명칭을 통해 의미를 부여하여 표현력을 통해 코드 가독성을 높일 수 있다.
함수를 즉시 호출하지 않고 변수에 담아서 활용한다.
변수의 명칭을 통해 의미를 부여하여 표현력을 통해 코드 가독성을 높일 수 있다.
'프로그래밍 > Javascript' 카테고리의 다른 글
JS, promise (0) | 2021.12.10 |
---|---|
JS, 비동기 처리와 콜백함수 (0) | 2021.12.09 |
클래스 그리고 prototype (0) | 2021.11.10 |
객체 (2) (0) | 2021.11.10 |
객체 (1) (0) | 2021.11.09 |
Comments