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 相关文章推荐
JS 数字转换研究总结
Dec 26 Javascript
Jquery中"$(document).ready(function(){ })"函数的使用详解
Dec 30 Javascript
js使用html()或text()方法获取设置p标签的显示的值
Aug 01 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
Dec 17 Javascript
Centos7 中 Node.js安装简单方法
Nov 02 Javascript
详解Jquery的事件操作和文档操作
Dec 19 Javascript
bootstrap中的 form表单属性role="form"的作用详解
Jan 20 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
Jun 25 Javascript
vuejs前后端数据交互之从后端请求数据的实例
Aug 11 Javascript
JS实现字符串翻转的方法分析
Aug 31 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
Sep 13 Javascript
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 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
PHP4实际应用经验篇(5)
2006/10/09 PHP
php中mkdir函数用法实例分析
2014/11/15 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
php统计数组元素个数的方法
2015/07/02 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
jQuery检测输入的字符串包含的中英文的数量
2015/04/17 Javascript
谈谈impress.js初步理解
2015/09/09 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
深入理解vue $refs的基本用法
2017/07/13 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
Python extract及contains方法代码实例
2020/09/11 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
远程网络教育毕业生自我鉴定
2014/04/14 职场文书
物理分数没达标检讨书
2014/09/13 职场文书
总经理检讨书
2014/09/15 职场文书
聘任证明怎么写
2015/03/02 职场文书
刑事附带民事上诉状
2015/05/23 职场文书
小学语文教学反思范文
2016/03/03 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers