js中实现多态采用和继承类似的方法


Posted in Javascript onAugust 22, 2014

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

如下面的例子:

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 相关文章推荐
IE8 下的Js错误HTML Parsing Error...
Aug 14 Javascript
5个最佳的Javascript日期处理类库分享
Apr 15 Javascript
jQuery Tools tab(幻灯片)
Jul 14 Javascript
自定义jQuery选项卡插件实例
Mar 27 Javascript
Extjs表单常见验证小结
Mar 07 Javascript
实用框架(iframe)操作代码
Oct 23 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
Jun 29 Javascript
Javascript基础知识盲点总结之函数
May 15 Javascript
js轮播图无缝滚动效果
Jun 17 Javascript
微信小程序实现点击图片放大预览
Oct 21 Javascript
es6函数name属性功能与用法实例分析
Apr 18 Javascript
Vue Elenent实现表格相同数据列合并
Nov 30 Vue.js
js中运算符&& 和 || 的使用记录
Aug 21 #Javascript
字段太多jquey快速清空表单内容方法
Aug 21 #Javascript
jQuery .tmpl() 用法示例介绍
Aug 21 #Javascript
jQuery控制TR显示隐藏的三种常用方法
Aug 21 #Javascript
jQuery截取指定长度字符串代码
Aug 21 #Javascript
jquery实现的下拉和收缩效果示例
Aug 21 #Javascript
简单的jquery左侧导航栏和页面选中效果
Aug 21 #Javascript
You might like
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
学习ExtJS Column布局
2009/10/08 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
js获取ip和地区
2017/03/10 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
2019/04/09 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
使用Python编写vim插件的简单示例
2015/04/17 Python
浅析Python基础-流程控制
2016/03/18 Python
基于pandas数据样本行列选取的方法
2018/04/20 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
jupyter实现重新加载模块
2020/04/16 Python
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
ajax是什么及其工作原理
2012/02/08 面试题
鼓励运动员的广播稿
2014/02/08 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
应届硕士毕业生自荐信
2014/05/26 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
标准单位租车协议书
2014/09/23 职场文书
大学生考试作弊检讨书1000字
2014/10/14 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
小学数学新课改心得体会
2016/01/22 职场文书