手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >使用命令对象代替switch语句的写法示例
使用命令对象代替switch语句的写法示例
摘要:曾经有人说过,真正好的程序是没有if..else的,当然switch还不如if..else。JS规范里面是禁止使用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),它被运用在许多软件设计模式中,包括强大的而有用的命令模式。

实例:

复制代码 代码如下:

// 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);

【使用命令对象代替switch语句的写法示例】相关文章:

JavaScript中使用自然对数ln的方法

使用JavaScript刷新网页的方法

js实现顶部可折叠的菜单工具栏效果实例

JavaScript中switch语句的用法详解

Javascript中For In语句用法实例

JS/Jquery判断对象为空的方法

JavaScript对传统文档对象模型的支持

JS动态增删表格行的方法

破解Session cookie的方法

jquery表单对象属性过滤选择器用法

精品推荐
分类导航