《大话设计模式》用JavaScript语言描述(一)
阅读了本书网上试读的部分,本人用 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;
}
}
}
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>
<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;
}
}
}
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;
}
}
}