js中实现多态

简介: <p>        多态的实现可以采用和继承类似的方法。首先定义一个抽象类,其中调用一些虚方法,虚方法在抽象类中没用定义,而是通过其具体的实现类来实现。</p> <p>如下面的例子:</p> <p></p><pre name="code" class="html">Object.extend=function(destination,source){ for(property i

        多态的实现可以采用和继承类似的方法。首先定义一个抽象类,其中调用一些虚方法,虚方法在抽象类中没用定义,而是通过其具体的实现类来实现。

如下面的例子:

Object.extend=function(destination,source){
	for(property in source){
		destination[property]=source[property];
	}
	return destination;
}
//定义一个抽象基类base,无构造函数
function base(){};

base.prototype={
    initialize:function(){
    	this.oninit();//调用了一个虚方法
    }
}
function SubClassA(){
	//构造函数
}
SubClassA.prototype=Object.extend({
	propInSubClassA:"propInSubClassA",
	oninit:function(){
		alert(this.propInSubClassA);
	}
},base.prototype);

function SubClassB(){
	//构造函数
}
SubClassB.prototype=Object.extend({
	propInSubClassB:"propInSubClassB",
	oninit:function(){
		alert(this.propInSubClassB);
	}
},base.prototype);

var objA=new SubClassA();
objA.initialize();//输出"propInSubClassA"

var objB=new SubClassB();
objB.initialize();//输出"propInSubClassB"

        首先定义了一个抽象基类base,在base类的initialize方法中调用了oninit方法,但是基类中并没用oninit方法的实现或者声明。SubClassA和SubClassB类继承自base类,并且分别采用了不同的方式对oninit方法进行实现。

相关文章
|
JavaScript 前端开发
【JavaScript】27_多态
# 7、多态 定义一个函数,这个函数将接收一个对象作为参数,他可以输出hello并打印对象的name属性 多态 - 在JS中不会检查参数的类型,所以这就意味着任何数据都可以作为参数传递 - 要调用某个函数,无需指定的类型,只要对象满足某些条件即可 - 如果一个东西走路像鸭子,叫起来像鸭子,那么它就是鸭子 - 多态为我们提供了灵活性 ```html <script> class Person{ constructor(name){ this.name = name }
55 0
|
JavaScript
js基础笔记学习111-多态2
js基础笔记学习111-多态2
45 0
js基础笔记学习111-多态2
|
JavaScript
js基础笔记学习110-多态1
js基础笔记学习110-多态1
40 0
js基础笔记学习110-多态1
|
JavaScript 前端开发
利用JavaScript实现二级联动
利用JavaScript实现二级联动 要实现JavaScript二级联动效果,首先要确定需要哪些技术: 二维数组 for in循环 new Option(text,value,true,true) add(option,null) onchange() 表单事件 HTML代码: &lt;!-- &lt;input type=&quot;text&quot; id=&quot;text&quot;&gt; --&gt; 请选择省份: &lt;select name=&quot;&quot; id=&quot;provinces&quot;&gt; &lt;!-- &lt;option value=&quot;江苏省&quot;&gt;江苏省&lt;/option&gt;
|
JavaScript 前端开发
JavaScript函数柯里化的实现原理,进来教你完成一个自己的自动实现柯里化方法
JavaScript函数柯里化的实现原理,进来教你完成一个自己的自动实现柯里化方法
167 0
|
移动开发 JavaScript weex
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
220 0
|
JavaScript
JS中实现或退出全屏
JS中实现或退出全屏
153 0
|
前端开发 JavaScript
前端:JS实现双击table单元格变为可编辑状态
前端:JS实现双击table单元格变为可编辑状态
365 0
|
JavaScript 算法 前端开发
【前端算法】JS实现数字千分位格式化
JS实现数字千分位格式化的几种思路,以及它们之间的性能比较
279 1