欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用命令對(duì)象代替switch語句的寫法示例

 更新時(shí)間:2015年02月28日 11:34:13   投稿:junjie  
這篇文章主要介紹了使用命令對(duì)象代替switch語句的寫法示例,JS規(guī)范里面是禁止使用switch語句的,使用命令對(duì)象可以完美的解決這個(gè)問題,需要的朋友可以參考下

曾經(jīng)有人說過,真正好的程序是沒有if..else的,當(dāng)然switch還不如if..else。JS規(guī)范里面是禁止使用switch的。

命令對(duì)象(command object)就完美的解決了這個(gè)問題。

引用一篇國外的博客提到的:

JavaScript 有著良好的控制流程語句,這些語句往往用花括號(hào)包裹著。不過有個(gè)例外:switch … case 語句。switch … case 的奇怪之處在于你必須在每個(gè) case 末尾加上關(guān)鍵字 break,以防止流程控制權(quán)穿越進(jìn)入下一個(gè) case 語句中。穿越是指讓多條 case 執(zhí)行的手法,當(dāng)未遇見預(yù)期的 break 時(shí),控制權(quán)就自動(dòng)交到下一句 case 手中。然而,就如同分號(hào)與花括號(hào)一樣,你很有可能會(huì)在不經(jīng)意之間忘了寫 break,當(dāng)這發(fā)生時(shí),后期的錯(cuò)誤排查就比較痛苦,因?yàn)檎Z句本身是沒錯(cuò)的。因此,配對(duì)地寫 case … break 是個(gè)好習(xí)慣。
我們通常講,JavaScript 有著優(yōu)雅的對(duì)象字面量與頂級(jí)函數(shù),這些都使得特定的方法查詢變的非常簡單。為方法查詢所創(chuàng)建的對(duì)象,我們稱之為 活動(dòng)對(duì)象(action object) 或 命令對(duì)象(command object),它被運(yùn)用在許多軟件設(shè)計(jì)模式中,包括強(qiáng)大的而有用的命令模式。

實(shí)例:

復(fù)制代碼 代碼如下:

// 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;
        }
    }
    // 使用命令對(duì)象
    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]();
    }
    // 測試結(jié)果
    var result1 = testSwitch('1');
    var result2 = testFn('2');
    console.info(result1, result2);

相關(guān)文章

  • js實(shí)現(xiàn)滑動(dòng)滑塊驗(yàn)證登錄

    js實(shí)現(xiàn)滑動(dòng)滑塊驗(yàn)證登錄

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)滑動(dòng)滑塊驗(yàn)證登錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • HTML中的setCapture和releaseCapture使用介紹

    HTML中的setCapture和releaseCapture使用介紹

    setCapture函數(shù)的作用就是將后續(xù)的mouse事件都發(fā)送給這個(gè)對(duì)象,releaseCapture就是將鼠標(biāo)事件還回去,由 document、window、object之類的自行來處理。這樣就保證了在拖動(dòng)的過程中,不會(huì)由于經(jīng)過了其它的元素而受到干擾
    2012-03-03
  • ECharts調(diào)用接口獲取后端數(shù)據(jù)的四種方法總結(jié)

    ECharts調(diào)用接口獲取后端數(shù)據(jù)的四種方法總結(jié)

    echarts是我們經(jīng)常用到的數(shù)據(jù)可視化圖形,但是后端反饋給我們的數(shù)據(jù)經(jīng)常是數(shù)組包對(duì)象的集合類型,下面這篇文章主要給大家介紹了關(guān)于ECharts調(diào)用接口獲取后端數(shù)據(jù)的四種方法,需要的朋友可以參考下
    2022-11-11
  • BootStrap3學(xué)習(xí)筆記(一)之網(wǎng)格系統(tǒng)

    BootStrap3學(xué)習(xí)筆記(一)之網(wǎng)格系統(tǒng)

    本文給大家介紹BootStrap3網(wǎng)格系統(tǒng)的相關(guān)知識(shí),本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • 如何自己實(shí)現(xiàn)JavaScript的new操作符

    如何自己實(shí)現(xiàn)JavaScript的new操作符

    new大家肯定都不陌生,單身沒有對(duì)象的時(shí)候就new一個(gè),很方便。那么它在創(chuàng)建實(shí)例的時(shí)候,具體做了哪些操作呢?今天我們就來一起分析一下。
    2021-04-04
  • uniapp中使用?uni.navigateBack()?返回上級(jí)頁面并傳參的方法

    uniapp中使用?uni.navigateBack()?返回上級(jí)頁面并傳參的方法

    最近遇到這樣的需求在A頁面中通過跳轉(zhuǎn)到B頁面,在B頁面中處理的數(shù)據(jù),需要跳轉(zhuǎn)回A頁面供其使用,本文給大家分享uniapp中使用?uni.navigateBack()?返回上級(jí)頁面并傳參的操作方法,感興趣的朋友一起看看吧
    2023-10-10
  • 讓iframe框架網(wǎng)頁在任何瀏覽器下自動(dòng)伸縮

    讓iframe框架網(wǎng)頁在任何瀏覽器下自動(dòng)伸縮

    很多朋友都在使用iframe中遇到過不能自動(dòng)隨頁面伸縮,特別是動(dòng)態(tài)讀取頁面的時(shí)候,會(huì)出現(xiàn)滾動(dòng)條,影響美觀,今天研究一下了,發(fā)現(xiàn)了一個(gè)簡單解決的辦法,可以在IE,F(xiàn)IREFOX,OPERA下使用
    2006-08-08
  • 使用js獲取QueryString的方法小結(jié)

    使用js獲取QueryString的方法小結(jié)

    從網(wǎng)上看到一些使用js獲取QueryString的方法,但用起來不是很理想,所以決定自己寫一個(gè)。主要原理是使用正則表達(dá)式匹配location.search中的字符串。
    2010-02-02
  • JavaScript裝飾器的實(shí)現(xiàn)原理詳解

    JavaScript裝飾器的實(shí)現(xiàn)原理詳解

    最近在使用TS+Vue的開發(fā)模式,發(fā)現(xiàn)項(xiàng)目中大量使用了裝飾器,看得我手足無措,今天特意研究一下實(shí)現(xiàn)原理,方便自己理解這塊知識(shí)點(diǎn),有需要的小伙伴也可以參考一下
    2022-10-10
  • js實(shí)現(xiàn)前端圖片上傳即時(shí)預(yù)覽功能

    js實(shí)現(xiàn)前端圖片上傳即時(shí)預(yù)覽功能

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)前端圖片即時(shí)預(yù)覽功能,本地預(yù)覽功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評(píng)論