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模拟面向对象全解(一、类型及传递)
Jul 13 Javascript
jquery实现文本框数量加减功能的例子分享
May 10 Javascript
JavaScript实现的多个图片广告交替显示效果代码
Sep 04 Javascript
JSON字符串转换JSONObject和JSONArray的方法
Jun 03 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
Jan 24 Javascript
微信小程序 聊天室简单实现
Apr 19 Javascript
vue上传图片组件编写代码
Jul 26 Javascript
JavaScript选择排序算法原理与实现方法示例
Aug 06 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
Aug 20 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
Sep 21 Javascript
在微信小程序中使用mqtt服务的方法
Dec 13 Javascript
解决pycharm双击但是无法打开的情况
Oct 31 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中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
php修改时间格式的代码
2011/05/29 PHP
php等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
js查错流程归纳
2012/05/04 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
python3.0 字典key排序
2008/12/24 Python
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
阿德的梦教学反思
2014/02/06 职场文书
药店主任岗位责任制
2014/02/10 职场文书
售后服务承诺书模板
2014/05/21 职场文书
护士节慰问信
2015/02/15 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
主题班会开场白
2015/06/01 职场文书
医院病假条怎么写
2015/08/17 职场文书
担保书格式范文
2015/09/22 职场文书
python实现简单倒计时功能
2021/04/21 Python
JAVA API 实用类 String详解
2021/10/05 Java/Android
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL