首页 web前端 js教程 使用命令对象代替switch语句的写法示例_javascript技巧

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

May 16, 2016 pm 04:12 PM
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);
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP中的条件控制结构 PHP中的条件控制结构 Mar 10, 2024 pm 09:36 PM

PHP中的条件控制结构在PHP编程中,条件控制结构是一种非常重要的语法,它可以让程序根据不同的条件来执行不同的代码块。通过使用条件控制结构,我们可以实现程序的分支逻辑,根据条件的结果来决定程序的执行路径。本文将介绍PHP中常用的条件控制结构,包括if语句、else语句、elseif语句和switch语句,并给出具体的代码示例。if语句是PHP中最基本的条件控

Go 语言基础 - switch语句 Go 语言基础 - switch语句 Jul 24, 2023 pm 03:50 PM

switch是一个条件语句,用于计算条件表达式的值,判断该值是否满足case语句,如果匹配则会执行相应的代码块。是用来替换复杂if-else语句的常用方式。

switch语句 switch语句 Aug 11, 2023 am 10:54 AM

Switch语句是一种在编程中常用的控制结构,允许程序根据不同的条件值来执行不同的代码块,可以代替多个if-else语句,提高代码的可读性和可维护性。虽然它有一些限制,但在适当的情况下,使用Switch语句可以使程序更加简洁和高效。

wifi7可以代替有线 wifi7可以代替有线 Dec 28, 2023 pm 07:44 PM

很多用户都非常的关注WiFi的发展,当WiFi7出来以后很多用户都开始猜测WiFi7是否可以代替有线网络,当然如果WiFi可以高速稳定地传输,那么取代有线网络也是正常的wifi7可以代替有线答:有望替代,但到底如何还要看正式投入使用的情况。WiFi7要比上一代的WiFi6快出2倍左右,同时延迟还减了近半。如果真的可以有非常高速稳定的传输速度,那么替代有线也是很正常的。WiFi7介绍1、Wi-Fi7则比Wi-Fi6更快,行业将其定义为“802.11beEHT”,也就是极高吞吐量2、Wi-Fi7可以

switch语句怎么用 switch语句怎么用 Sep 21, 2023 pm 05:48 PM

switch语句用法:1、Switch语句只能用于整数类型,枚举类型和String类型,不能用于浮点数类型和布尔类型;2、每个case语句后面必须跟着一个break语句,以防止执行其他case的代码块,没有break语句,将会继续执行下一个case的代码块;3、可以在一个case语句中匹配多个值,使用逗号分隔;4、Switch语句中的default代码块是可选的等等。

Go 语言中的 switch 语句是怎样使用的? Go 语言中的 switch 语句是怎样使用的? Jun 11, 2023 am 09:11 AM

Go语言是一种新兴的编程语言,它具有高效、简洁、安全和并发等特点,非常适合用于Web开发、分布式系统和云计算等领域。在Go语言中,switch语句是一种非常常用的语言结构,它可以根据表达式的值,选择不同的分支进行执行。本文将介绍Go语言中switch语句的基本使用方法和注意事项。基本语法Go语言中的switch语句与其他编程语言中的

Java 10中的局部变量类型推断:如何在switch语句中使用final var关键字 Java 10中的局部变量类型推断:如何在switch语句中使用final var关键字 Jul 31, 2023 pm 12:31 PM

Java10中的局部变量类型推断:如何在switch语句中使用finalvar关键字随着Java语言的不断发展,每个新版本都会引入一些新的特性和改进。在Java10中,其中一个重要的新特性是局部变量类型推断。这个特性使得开发人员可以使用var关键字来代替显式的类型声明,从而使代码更加精简和易读。本文将探讨如何在switch语句中使用finalvar关

Java 枚举类型如何与 switch 语句配合使用? Java 枚举类型如何与 switch 语句配合使用? Apr 30, 2024 pm 06:48 PM

枚举类型是Java中定义常量集合的数据类型。配合switch语句,可实现以下功能:清晰表示值范围:枚举类型用于定义一组不可变的常量值,提高代码可读性。匹配不同枚举常量:switch语句允许根据枚举常量执行不同的操作,实现精细化的控制。处理不同场景:通过枚举类型和switch语句,可以在实际场景中灵活处理各种情况,如不同的通知类型发送不同邮件内容。

See all articles