源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

使用命令对象代替switch语句的写法示例

  • 时间:2020-05-17 16:27 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:使用命令对象代替switch语句的写法示例
曾经有人说过,真正好的程序是没有if..else的,当然switch还不如if..else。JS规范里面是禁止使用switch的。 命令对象(command object)就完美的解决了这个问题。 引用一篇国外的博客提到的: JavaScript 有着良好的控制流程语句,这些语句往往用花括号包裹着。不过有个例外:switch … case 语句。switch … case 的奇怪之处在于你必须在每个 case 末尾加上关键字 break,以防止流程控制权穿越进入下一个 case 语句中。穿越是指让多条 case 执行的手法,当未遇见预期的 break 时,控制权就自动交到下一句 case 手中。然而,就如同分号与花括号一样,你很有可能会在不经意之间忘了写 break,当这发生时,后期的错误排查就比较痛苦,因为语句本身是没错的。因此,配对地写 case … break 是个好习惯。 我们通常讲,JavaScript 有着优雅的对象字面量与顶级函数,这些都使得特定的方法查询变的非常简单。为方法查询所创建的对象,我们称之为 活动对象(action object) 或 命令对象(command object),它被运用在许多软件设计模式中,包括强大的而有用的命令模式。 实例:
[u]复制代码[/u] 代码如下:
// switch 方法     function testSwitch(name) {         switch (name) {             case '1':                 return 'hack';                 break;             case '2':                 return 'slash';                 break;             case '3':                 return 'run';                 break;             default:                 return false;                 break;         }     }     // 使用命令对象     function testFn(name) {         var names = {             '1': function() {                 return 'hack';             },             '2': function() {                 return 'slash';             },             '3': function() {                 return 'run';             }         };         if (typeof names[name] !== 'function') {             return false;         }         return names[name]();     }     // 测试结果     var result1 = testSwitch('1');     var result2 = testFn('2');     console.info(result1, result2);
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部