js 使用命令对象代替switch语句

进入公司前,在面试的时候就曾被问到这个问题,有没有比switch—case完美的写法取代它,我当时是一脸懵逼,后来进入到公司后,终于碰到了这个问题,所以赶紧总结下来!
原来我的代码:

switch(column.property) {
case "money":
sums[index] = (this.sumFooter.moneySum / 100).toFixed(2);
break;
case "profit":
sums[index] = this.sumFooter.profitSum / 100;
break;
default:
break;
}

老套的switch—case写法。
主管修改后的代码:

let mapSum = {
'money': function(f) {
return sums[index] = (f.moneySum / 100).toFixed(2)
},
'profit': function(f) {
return sums[index] = f.profitSum / 100
}
}
let action = mapSum[column.property]
if(!action)
return
action(this.sumFooter)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,029评论 25 709
  • 53.计算字符 在字符串中获取字符值的数量, 可以使用字符串字符属性中的计数属性: let unusualMena...
    无沣阅读 1,151评论 0 4
  • 注:这是第三遍读《C语言深度解剖》,想想好像自从大学开始就没读完过几本书,其中谭浩强的那本《C语言程序设计(第四版...
    HavenXie阅读 1,803评论 1 6
  • 很多人的生活都是没有规划的,没有目标的,设定一个可以完成的目标, 那是对自己生活的负责,也是对自己进步的记录。当你...
    YJ夏咛阅读 619评论 0 0
  • 看到咪蒙的这句话,心里感触颇多,想来年轻时不经历多一些,老去的时候会悲泣而不得。大概在大学的这么几年,想着平淡如水...
    芦苇上的虫阅读 600评论 0 0