菜单

使用命令对象代替switch语句的写法示例_javascript技巧_脚本之家

2020年2月27日 - 澳门太阳娱乐手机登录

曾经有人说过,真正好的程序是没有if..else的,当然switch还不如if..else。JS规范里面是禁止使用switch的。

命令对象就完美的解决了这个问题。

澳门太阳娱乐手机登录,引用一篇国外的博客提到的:

JavaScript
有着良好的控制流程语句,这些语句往往用花括号包裹着。不过有个例外:switch
… case 语句。switch … case 的奇怪之处在于你必须在每个 case
末尾加上关键字 break,以防止流程控制权穿越进入下一个 case
语句中。穿越是指让多条 case 执行的手法,当未遇见预期的 break
时,控制权就自动交到下一句 case
手中。然而,就如同分号与花括号一样,你很有可能会在不经意之间忘了写
break,当这发生时,后期的错误排查就比较痛苦,因为语句本身是没错的。因此,配对地写
case … break 是个好习惯。我们通常讲,JavaScript
有着优雅的对象字面量与顶级函数,这些都使得特定的方法查询变的非常简单。为方法查询所创建的对象,我们称之为
活动对象 或
命令对象,它被运用在许多软件设计模式中,包括强大的而有用的命令模式。

复制代码 代码如下:// switch 方法 function
testSwitch { case ‘1’: return ‘hack’; break; case ‘2’: return ‘slash’;
break; case ‘3’: return ‘run’; break; default: return false; break; } }
// 使用命令对象 function testFn { 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; var
result2 = testFn; console.info;

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图