JavaScript
[JS] 객체 리터럴을 활용한 if문 제거
presentKey
2023. 3. 8. 01:28
참고 영상
- https://www.youtube.com/watch?v=toUlXhTZZ8w&t=19s&ab_channel=%ED%94%84%EB%A1%B1%ED%8A%B8
⭕ 첫 번째 예제
if문 코드
function executePayment(paymentType) {
if (paymentType === 'KAKAO_PAYMENT') {
return '카카오 결제 처리';
} else if (paymentType === 'NAVER_PAYMENT') {
return '네이버 결제 처리';
} else if (paymentType === 'COUPANG_PAYMENT') {
return '쿠팡 결제 처리';
} else if (paymentType === 'PAYCO_PAYMENT') {
return '페이코 결제 처리';
}
}
객체 활용 코드
const paymentMap = {
KAKAO_PAYMENT: '카카오 결제 처리',
NAVER_PAYMENT: '네이버 결제 처리',
COUPANG_PAYMENT: '쿠팡 결제 처리',
PAYCO_PAYMENT: '페이코 결제 처리',
};
function executePayment(paymentType) {
return paymentMap[paymentType] ?? '알 수 없는 결제 처리';
}
console.log(executePayment('KAKAO_PAYMENT'));
⭕ 두 번째 예제
if문 코드
function payOnKaKao() {
console.log('kakao pay 처리중');
}
function payOnNaver() {}
function payOnCoupang() {}
function payOnPayco() {}
function sendLog() {}
function executePayment(paymentType) {
if (paymentType === 'KAKAO_PAYMENT') {
payOnKaKao();
} else if (paymentType === 'NAVER_PAYMENT') {
payOnNaver();
} else if (paymentType === 'COUPANG_PAYMENT') {
sendLog();
payOnCoupang();
} else if (paymentType === 'PAYCO_PAYMENT') {
sendLog();
payOnPayco();
}
}
executePayment('KAKAO_PAYMENT');
객체 활용 코드
function payOnKaKao() {
console.log('kakao pay 처리중');
}
function payOnNaver() {}
function payOnCoupang() {}
function payOnPayco() {}
function sendLog() {}
const paymentMap = {
KAKAO_PAYMENT() { // KAKAO_PAYMENT: function() {}
payOnKaKao();
},
NAVER_PAYMENT() {
payOnNaver();
},
COUPANG_PAYMENT() {
sendLog();
payOnCoupang();
},
PAYCO_PAYMENT() {
sendLog();
payOnPayco();
},
};
function executePayment(paymentType) {
paymentMap[paymentType]?.() ?? console.log('알 수 없는 결제 처리');
}
executePayment('KAKAO_PAYMENT');