《大話設計模式》用JavaScript語言描述(一)

來源:互聯網
上載者:User

閱讀了本書網上試讀的部分,本人用 JavaScript 語言重寫該書中C#來源程式的代碼。

第一章1.1節的原始碼重寫:

Code
Program = {
    main: function() {
        if(!document.getElementById) return;
        var A = document.getElementById('numA').value;
        var B = document.getElementById('operator').value;
        var C = document.getElementById('numB').value;
        var D = '';
        if(B == '+') {
            D = Number(A) + Number(C);
        }
        if(B == '-') {
            D = Number(A) - Number(C);
        }
        if(B == '*') {
            D = Number(A) * Number(C);
        }
        if(B == '/') {
            D = Number(A) / Number(C);
        }
        document.getElementById('compute').onclick = function() {
            return document.getElementById('result').innerHTML = D;
        }
    }
}

HTML代碼:

Code
<p>
    <label for="numA">請輸入數字A:</label>
    <input type="text" id="numA" value="" />
</p>
<p>
    <label for="operator">請選擇運算子號(+、-、*、/):</label>
    <input type="text" id="operator" value="" />
</p>
<p>
    <label for="numB">請輸入數字B:</label>
    <input type="text" id="numB" value="" />
</p>
<p>
    <button id="compute">計算</button>
</p>
<p>
    <span id="result"></span>
</p>

 

第一章1.3節的原始碼重寫:

Code
Program = {
    main: function() {
        if(!document.getElementById) return;
        try {
            var sNumA = document.getElementById('numA').value;
            var sOperate = document.getElementById('operate').value;
            var sNumB = document.getElementById('numB').value;
            var sResult = '';
            switch(sOperate) {
                case '+':
                    sResult = (Number(sNumA) + Number(sNumB)).toString();
                    break;
                case '-':
                    sResult =  (Number(sNumA) - Number(sNumB)).toString();
                    break;
                case '*':
                    sResult =  (Number(sNumA) * Number(sNumB)).toString();
                    break;
                case '/':
                    if(sNumB != '0')
                        sResult =  (Number(sNumA) / Number(sNumB)).toString();
                    else
                        sResult = '除數不能為 0';
                    break;
            }
        }
        catch(ex) {
            console.log('你的輸入有誤:' + ex);
        }
        document.getElementById('compute').onclick = function() {
            return document.getElementById('result').innerHTML = sResult;
        }
    }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.