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 相关文章推荐
Prototype使用指南之ajax
Jan 10 Javascript
html 锁定页面(js遮罩层弹出div效果)
Oct 27 Javascript
JavaScript浏览器选项卡效果
Aug 25 Javascript
js实现select跳转功能代码
Oct 22 Javascript
jQuery实现折线图的方法
Feb 28 Javascript
javascript执行环境及作用域详解
May 05 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
Jan 22 jQuery
关闭Vue计算属性自带的缓存功能方法
Mar 02 Javascript
js中this的指向问题归纳总结
Nov 28 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
Dec 06 Javascript
JavaScript实现移动端弹窗后禁止滚动
May 25 Javascript
vue实现评价星星功能
Jun 30 Javascript
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
PHP 程序员也要学会使用“异常”
2009/06/16 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
2017/04/24 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
vue 实现边输入边搜索功能的实例讲解
2018/09/16 Javascript
JS实现吸顶特效
2020/01/08 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
[01:00:04]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第二局
2016/02/26 DOTA
Python调用C# Com dll组件实战教程
2017/10/12 Python
使用python语言,比较两个字符串是否相同的实例
2018/06/29 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
Python 画出来六维图
2019/07/26 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
python实现从wind导入数据
2019/12/03 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
python性能测试工具locust的使用
2020/12/28 Python
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
工商企业管理实习自我鉴定
2013/12/04 职场文书
期中考试后的反思
2014/02/08 职场文书
工作决心书范文
2014/03/11 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
助学感谢信范文
2015/01/21 职场文书
2016大学生暑期三下乡心得体会
2016/01/23 职场文书