`
ziyuewang
  • 浏览: 40317 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

JavaScript实现的计算器(一种全新的继承方式,模拟多态,策略模式)

阅读更多

截图 :

 

 

 

cal.js

 

	var Class = {} ;
	Class.calculation = function(){
		var calculation = {} ;
		calculation.result = 0 ;
		calculation.calculate = function(num1,num2){} ;
		calculation.getResult = function(){
			return this.result ;
		} ;
		return calculation ;
	} ;
	Class.add = function(){
		var add = Class.calculation() ;
		add.calculate = function(num1,num2){
			this.result = num1 + num2 ;
		} ;
		return add ;
	}
	Class.subtraction = function(){
		var subtraction = Class.calculation() ;
		subtraction.calculate = function(num1,num2){
			this.result = num1 - num2 ;
		} ;
		return subtraction ;
	}
	Class.multiply = function(){
		var multiply = Class.calculation() ;
		multiply.calculate = function(num1,num2){
			this.result = num1 * num2 ;
		} ;
		return multiply ;
	}
	Class.divide = function(){
		var divide = Class.calculation() ;
		divide.calculate = function(num1,num2){
			this.result = num1 / num2 ;
		} ;
		return divide ;
	}
	Class.calculator = function(num1,num2,op){
		var obj = null ;
		var num1 = parseInt(num1) || 0 ;
		var num2 = parseInt(num2) || 0 ;
		if("+" == op){
			obj = Class.add() ;
		}
		else if("-" == op){
			obj = Class.subtraction() ;
		}
		else if("*" == op){
			obj = Class.multiply() ;
		}
		else if("/" == op){
			if(0 == num2){
				alert("除数不能为零!") ;
				return ;
			}
			obj = Class.divide() ;
		}
		else{
			alert("无效的" + op + "操作符!") ;
			return ;
		}
		obj.calculate(num1,num2) ;
		alert("计算结果:" + obj.getResult()) ;
	}

 

 

测试 :

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE>JavaScript面向对象</TITLE>
	<script type="text/javascript" src="js-lib/cal.js"></script>
	<script type="text/javascript">
		window.onload = function(){
			document.getElementById("command").onclick = function(){
				var n1 = document.getElementById("n1").value ;
				var opera = document.getElementById("opera").value ;
				var n2 = document.getElementById("n2").value ;
				Class.calculator(n1,n2,opera) ;
			}
	} ;
</script>
 </HEAD>

 <BODY>

	操作数1 : <input type="text" id="n1" /></br></br>
	操作符号 : <input size="4" type="text" id="opera" /></br></br>
	操作数2 : <input type="text" id="n2" /></br></br>
	<input type="button"  id="command" value="计算" />
</BODY>
</HTML>
 
分享到:
评论

相关推荐

    C#做的计算器,利用类的封装继承多态。。

    在C#编程中,"C#做的计算器,利用类的封装继承多态"是一个典型的面向对象编程示例。这个计算器项目展示了如何应用C#的核心概念,如类、封装、继承和多态,来构建一个实际的软件应用。下面将详细解释这些知识点。 1....

    javascript中如何实现封装,继承和多态

    javascript中如何实现封装,继承和多态

    javascript中如何实现封装,继承和多态,并有详细

    javascript中如何实现封装,继承和多态,并有详细,我天天在传谢谢

    空对象模式虚函数实现运行时多态策略模式

    综合以上,这份资料可能包含了一篇关于如何使用Java实现空对象模式、利用虚函数实现运行时多态、以及策略模式的文章,还可能附带了源码示例、运行结果、UML类图和详细的分析文档。这些内容可以帮助读者深入理解并...

    c语言实现继承与多态

    【C语言实现继承与多态】的探讨主要集中在如何在非面向对象的语言——C语言中,利用其特性模拟实现面向对象编程的关键概念:封装、继承和多态。 封装是面向对象设计的基础,它通过将数据和操作数据的函数捆绑在一起...

    java基础继承封装多态

    数据库设计模式是 Java 中的一种设计模式,强调数据库的设计和实现。数据库设计模式的优点是可以提高数据库的性能和可维护性。 在数据库设计模式中,发现类、第一范式、第二范式和第三范式都是非常重要的概念。这些...

    C#第六章 初始继承和多态.pdf

    C#第六章 初始继承和多态.pdfC#第六章 初始继承和多态.pdfC#第六章 初始继承和多态.pdf C#第六章 初始继承和多态.pdfC#第六章 初始继承和多态.pdf

    使用C语言实现封装,继承,多态等面向对象的特性

    使用C语言实现封装,继承,多态等面向对象的特性使用C语言实现封装,继承,多态等面向对象的特性使用C语言实现封装,继承,多态等面向对象的特性使用C语言实现封装,继承,多态等面向对象的特性使用C语言实现封装,...

    C++继承与多态例子

    继承允许我们创建一个新类(子类),它继承了另一个类(父类)的属性和方法,从而实现了代码的重用和扩展。多态则是指同一种行为在不同对象上表现出不同的形式,增强了程序的灵活性。 首先,让我们详细讨论继承。在...

    教学视频-继承&多态

    在实际应用中,继承和多态的结合可以实现强大的功能,比如设计模式中的工厂模式、策略模式等,它们充分利用了这两个特性来提高代码的灵活性和可扩展性。通过观看"2-2继承&多态"的教学视频,你可以深入理解这两个概念...

    c#中应用多态的计算器

    在这个“C#中应用多态的计算器”示例中,我们将探讨如何在计算器程序中实现这一概念。 首先,让我们理解什么是多态。多态是指一个接口可以有多种不同的表现形式或实现。在C#中,多态可以通过方法重载、方法重写...

    继承和多态.doc

    接口提供了一种定义一组方法签名的方式,而具体的实现由实现该接口的类完成;抽象类可以包含抽象方法和具体实现,派生类必须实现抽象方法才能实例化。 #### 四、多态的应用实例 以下是一个简单的Java示例,展示了...

    继承和多态笔记.docx

    - **多重继承**:通过继承一个父类并实现多个接口来模拟多重继承的效果。 - **语法**: ```java class ChildClass extends ParentClass { // 子类定义 } ``` - **super与this关键字**: - `super`:用来...

    java中继承与多态的题目

    继承是面向对象编程的一种机制,允许一个类(子类)继承另一个类(父类)的属性和方法。继承的目的是为了实现代码的重用和简化程序的设计。在 Java 中,继承是通过关键字 `extends` 实现的。 多态的概念 多态是...

    继承与多态程序演示

    继承是一种设计模式,允许一个类(子类或派生类)从另一个类(父类或基类)获取属性和方法。这种机制使得子类可以复用父类的功能,并在其基础上进行扩展或定制。在MFC框架中,我们可以创建一个CShape类作为基本形状...

    C#继承,接口,多态的实现与区别

    下面将详细阐述这三个概念的实现方式、功能以及它们之间的区别。 首先,**继承(Inheritance)**是C#中类之间的一种关系,一个类可以继承自另一个类,从而获得被继承类的所有属性和方法。这种关系使得代码复用变得...

    抽象工厂模式实现计算器

    抽象工厂模式是一种创建型设计模式,它提供了一种创建对象族的方法,而无需指定它们的具体类。在计算器的实现中,这个模式可以帮助我们构建不同类型的计算器,比如简单计算器、科学计算器等,而无需修改现有代码。 ...

    封装继承多态总结

    封装继承多态总结

Global site tag (gtag.js) - Google Analytics