案例
salary:奖金
grade:等级
let bonus = function (salary, grade) {
if (grade === 'A') {
return salary * 4
}
if (grade === 'B') {
return salary * 3
}
if (grade === 'C') {
return salary * 2
}
}
优化方法:
策略模式
let obj ={
A: function (salary){
return salary * 4
},
B: function (salary){
return salary * 3
},
C: function (salary){
return salary * 2
}
}
let bonus = function (salary, grade) {
return obj[grade](salary)
}
console.log(bonus(4000, 'A'));
console.log(bonus(3000, 'B'));
console.log(bonus(2000, 'C'));