반환 값으로서의 함수가 가지는 이점
function salePrice(price, discountRate) {
return price - (price * discountRate * 0.01);
}
function discountPrice(discountRate) {
return function(price) {
return price - (price * discountRate * 0.01);
}
}
console.log('여름 세일 ' + salePrice(10000, 30));
console.log('겨울 세일 ' + salePrice(10000, 10));
let summerPrice = discountPrice(30);
let winterPrice = discountPrice(10);
console.log('여름 세일 ' +summerPrice(10000));
console.log('겨울 세일 ' + winterPrice(10000));
로직은 함수 선언문과 동일하다. 차이점이 있다면 return 값으로 함수를 써주는 부분과
전달받는 매개인자를 나누어서 작성한 부분이 차이점이 있다. 반환값으로서 일급함수를 작
성하게 될 경우 변수에 담을 수 있기 때문에 코드를 읽는 사람 입장에서 좀더 직관적으로
코드를 이해할 수 있다는 특징이 있다.
위의 코드 상에서 discounPrice(할인율)을 변수 summerPrice || winterPrice에
담아 놓고 해당 변수에 판매가격을 인수로 넣어 호출 했을 때 그냥 salePrice(판매가격,
할인율)을 작성한 함수 보다 해당 값이 의미하는 바를 명확하게 알 수 있고 할인율 별로
변수에 할당해줌으로써 보다 직관적으로 변수가 갖는 값의 의미를 파악할 수 있다.