SOURCE

// const bonus= {
// 	"S" = (salary) => { salary * 3 },
// 	"A" = (salary) => { salary * 2 },
// 	"B" = (salary) => { salary  },
// }
// function calculate(salary, level) {
// 	return bonus[level](salary);
// }
// //测试
// calculate(3000, "S"); //9000
/**
 * 按钮点击事件
 * @param {number} status 活动状态:1开团进行中 2开团失败 3 开团成功 4 商品售罄 5 有库存未开团
 * @param {string} identity 身份标识:guest客态 master主态
 */
// const onButtonClick = (status,identity)=>{
//   if(identity == 'guest'){
//     if(status == 1){
//       //do sth
//     }else if(status == 2){
//       //do sth
//     }else if(status == 3){
//       //do sth
//     }else if(status == 4){
//       //do sth
//     }else if(status == 5){
//       //do sth
//     }else {
//       //do sth
//     }
//   }else if(identity == 'master') {
//     if(status == 1){
//       //do sth
//     }else if(status == 2){
//       //do sth
//     }else if(status == 3){
//       //do sth
//     }else if(status == 4){
//       //do sth
//     }else if(status == 5){
//       //do sth
//     }else {
//       //do sth
//     }
//   }
// }


// const actions = new Map([
//   ['guest_1', ()=>{/*do sth*/}],
//   ['guest_2', ()=>{/*do sth*/}],
//   ['guest_3', ()=>{/*do sth*/}],
//   ['guest_4', ()=>{/*do sth*/}],
//   ['guest_5', ()=>{/*do sth*/}],
//   ['master_1', ()=>{/*do sth*/}],
//   ['master_2', ()=>{/*do sth*/}],
//   ['master_3', ()=>{/*do sth*/}],
//   ['master_4', ()=>{/*do sth*/}],
//   ['master_5', ()=>{/*do sth*/}],
//   ['default', ()=>{/*do sth*/}],
// ])

/**
 * 按钮点击事件
 * @param {string} identity 身份标识:guest客态 master主态
 * @param {number} status 活动状态:1 开团进行中 2 开团失败 3 开团成功 4 商品售罄 5 有库存未开团
 */
// const onButtonClick = (identity,status)=>{
//   let action = actions.get(`${identity}_${status}`) || actions.get('default')
//   action.call(this)
// }


const actions = new Map([
  [{identity:'guest',status:1},()=>{/*do sth*/}],
  [{identity:'guest',status:2},()=>{/*do sth*/}],
  //...
])

console.log(actions)

const onButtonClick = (identity,status)=>{
  let action = [...actions].filter(([key,value])=>(key.identity == identity && key.status == status))
  action.forEach(([key,value])=>value.call(this))
}

console 命令行工具 X clear

                    
>
console