更新时间:2022年05月16日18时06分 来源:传智教育 浏览次数:
首先从大多数人熟悉的编程习惯开始,假如现在要使用JavaScript实现一个计算器的案例,如图1-2所示。
在图1-2中,前两个文本框用于输入需要计算的数值,下拉菜单用于选择运算符,单击等号后,计算结果会出现在第三个文本框。
实现计算器第一种常见的写法是全局函数形式,示例代码如demol-1.html所示。
demo1-1.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>模块化开发演变-全局函数</title>
</head>
<body>
<input type="text" id="x">
<select name="" id="opt">
<option value="0">+</option>
<option value="1">-</option>
<option value="2">*</option>
<option value="3">/</option>
</select>
<input type="text" id="y">
<button id="cal">=</button>
<input type="text" id="result">
<script>
//定义用于计算的函数
function add(x, y) (
return parseInt(x) + parseInt(y);
}
function subtract(x, y) {
return parseInt (x) - parseInt (y);
}
function multiply(x, y) {
return parseInt(x) * parseInt(y);
}
function divide(x, y) {
return parseInt(x) / parseInt(y);
}
//获取所有的DOM元素
var oX = document.getElementById('x'); //第一个数值
var oY = document.getElementById('y'); //第二个数值
var oOpt = document.getElementById('opt') //获取运算符
var oCal = document.getElementById('cal'); //获取等号按钮
var oResult= document.getElementById('result') //结果数值
//为等号按钮添加单击事件,当按钮被点击时调用此方法
oCal.addEventListener('click', function() {
var x = oX.value.trim()
var y = oY.value.trim()
var opt = oOpt.value
var result = 0
switch(opt) (
case '0':
result = add(x, y); //加
break;
case'2':
result = multiply(x, y); //乘
break;
case '3':
result = divide (x, y); //除
break;
}
oResult.value = result
})
</script>
</body>
</html>
在上述代码中,首先获取需计算的数值、运算符、等号按钮和结果数值的DOM(文档对象模型)元素,然后分别定义了4个用来计算加、减、乘、除的函数,最后为等号按钮添加单击事件,通过switch语句判断调用哪个计算方法。
全局函数这种编程方式很常见,但是不可取,因为所有的变量和函数都暴露在全局,无法保证全局变量不与其他模块的变量发生冲突。另外,全局函数形成的模块成员之间看不出直接关系。