JavaScript 替代switch的解决办法
内容摘要
这篇文章主要为大家详细介绍了JavaScript 替代switch的简单示例,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记。曾经有人说过,真正好的程
对此感兴趣的朋友,看看idc笔记做的技术笔记。曾经有人说过,真正好的程
文章正文
这篇文章主要为大家详细介绍了JavaScript 替代switch的简单示例,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记。曾经有人说过,真正好的程序是没有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),它被运用在许多软件设计模式中,包括强大的而有用的命令模式。实例: JS代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <code class = "js" > /** * switch 方法 * * @param * @arrange (www.idcnote.com) **/ 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);</code> |
注:关于JavaScript 替代switch的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释