728x90
반응형
if문 제거하기
중복된 if 조건들은 변경사항이 발생하면 프로젝트내에 모두 찾기하여 일일이 수정해야 하기 때문에 좋은 코드가 아님
이를 개선해보자
1. 개선 전 코드
function executePayment(paymentType) {
if(paymentTpye === "KAKAO") {
return "카카오 결제 처리"
} else if(paymentType === "NAVER") {
return "네이버 결제 처리"
} else if(paymentType === "COUPANG") {
return "쿠팡 결제 처리"
} else if(paymentType === "PAYCO") {
return "페이코 결제 처리"
} else if(paymentType === "APPLE") {
return "애플 결제 처리"
}
}
console.log(executePayment("KAKAO")); // 카카오 결제 처리
1. 개선 후 코드
const paymentMap = {
"KAKAO": "카카오 결제 처리",
"NAVER": "네이버 결제 처리",
"COUPANG": "쿠팡 결제 처리",
"PAYCO": "페이코 결제 처리",
"APPLE": "애플 결제 처리",
}
function executePayment(paymentType) {
return paymentMap[paymentType];
}
console.log(executePayment("KAKAO")); // 카카오 결제 처리
2. 개선 전 코드
function payOnKakao() {console.log("kakao pay 처리 중")};
function payOnNaver() {console.log("naver pay 처리 중")};
function payOnCoupang() {console.log("coupang pay 처리 중")};
function payOnPayco() {console.log("payco pay 처리 중")};
function payOnApple() {console.log("apple pay 처리 중")};
function sendLog() {console.log(log 남기기)};
function executePayment(paymentType) {
if(paymentTpye === "KAKAO") {
payOnKakao();
} else if(paymentType === "NAVER") {
sendLog();
payOnNaver();
} else if(paymentType === "COUPANG") {
sendLog();
payOnCoupang();
} else if(paymentType === "PAYCO") {
sendLog();
payOnPayco();
} else if(paymentType === "APPLE") {
sendLog();
payOnApple();
}
}
executePayment("KAKAO"); // kakao pay 처리 중
2. 개선 후 코드
function payOnKakao() {
console.log("kakao pay 처리 중");
}
function payOnNaver() {
console.log("naver pay 처리 중");
}
function payOnCoupang() {
console.log("coupang pay 처리 중");
}
function payOnPayco() {
console.log("payco pay 처리 중");
}
function payOnApple() {
console.log("apple pay 처리 중");
}
function sendLog() {
console.log("log 남기기");
}
const paymentMap = {
KAKAO() {
payOnKakao();
},
NAVER() {
sendLog();
payOnNaver();
},
COUPANG() {
sendLog();
payOnCoupang();
},
PAYCO() {
sendLog();
payOnPayco();
},
APPLE() {
sendLog();
payOnApple();
}
}
function executePayment(paymentType) {
paymentMap[paymentType]();
}
executePayment("NAVER"); // naver pay 처리 중
반응형
'프로그래밍 > JavaScript' 카테고리의 다른 글
[JavaScript] JSON.parse() (0) | 2023.01.12 |
---|---|
[JavaScript] 팝업 띄우기 (0) | 2023.01.09 |
[JavaScript] JavaScript 배열의 요소를 삭제 (0) | 2022.12.13 |
[JavaScript] 문서의 DOM이 모두 로드된 후 실행하기 (로딩의 순서) (0) | 2022.12.09 |
[JavaScript] 데이터 타입 확인 (0) | 2022.11.30 |