// OOP
// ClassMember 라는 객체 명세를 알아야함
// increasePay는 객체 내부로 숨겨짐
// increasePay는 Class 한정이고 다른 Class 에서 재사용 불가
// Test 시 객체를 생성 해야함. 사용하지 않는 더미 파라메터가 필요.
class ClassMember {
constructor (name, pay) {
this.name = name;
this.pay = pay;
}
getPay() {
return this.pay
}
increasePay(amount) {
this.pay = this.pay + amount;
}
}
const members = [
new ClassMember("성식형", 100),
new ClassMember("김코딩", 100),
];
const updateMembers = members.map((member)=>{ return member.increasePay(300)};
// 함수형
// FuncMembers 라는 데이터 구조를 알아야함
// 그에 맞춰서 increasePay 를 구현
// increasePay는 함수이므로 같은 규격의 데이터라면 재사용이 가능
// 독립 함수라 Test를 쉽게 함. 검증데이터만 넣으면 됨.
const FuncMembers = [
["성식형", 100],
["김코딩", 100]
];
function increasePay(members, amount) {
return members.map((member)=>{
retur [member[0], member[1] + amount];
});
}
increasePay(FuncMembers, 300);
// currying
// 함수의 합성이 과연 좋은 방법일까?
function currying(func){
return function(firstValue){
return function(secondValue) {
return func(firstValue, secondValue);
}
}
}
const add = currying((a,b)=>{ return a+b});
console.log(add(1)(3));