现在的位置: 首页 > 综合 > 正文

《大话设计模式》用JavaScript语言描述(一)

2012年12月25日 ⁄ 综合 ⁄ 共 2327字 ⁄ 字号 评论关闭

阅读了本书网上试读的部分,本人用 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;
        }
    }
}

抱歉!评论已关闭.