国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 13:04:41
字體:
來源:轉載
供稿:網友

曾經有人說過,真正好的程序是沒有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);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄骅市| 佛坪县| 衡阳市| 邢台市| 蒲城县| 陕西省| 遂宁市| 崇明县| 台湾省| 枞阳县| 班玛县| 桦南县| 大余县| 南岸区| 黔东| 西和县| 漾濞| 老河口市| 海原县| 五家渠市| 集贤县| 宝鸡市| 沭阳县| 西盟| 项城市| 昭平县| 沁水县| 美姑县| 内丘县| 辽宁省| 钟山县| 宜春市| 新巴尔虎右旗| 来凤县| 巴楚县| 九江市| 谢通门县| 莆田市| 台东县| 济阳县| 五原县|