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 相关文章推荐
基于jquery异步传输json数据格式实例代码
Nov 23 Javascript
JS实现倒计时和文字滚动的效果实例
Oct 29 Javascript
JavaScript中的方法调用详细介绍
Dec 30 Javascript
jquery插件bootstrapValidator数据验证详解
Nov 09 Javascript
bootstrap fileinput 上传插件的基础使用
Feb 17 Javascript
discuz表情的JS提取方法分析
Mar 22 Javascript
Vuejs 页面的区域化与组件封装的实现
Sep 11 Javascript
jQuery实现的简单前端搜索功能示例
Oct 28 jQuery
vuejs实现ready函数加载完之后执行某个函数的方法
Aug 31 Javascript
jQuery实现的记住帐号密码功能完整示例
Aug 03 jQuery
javascript如何实现create方法
Nov 04 Javascript
JS实现商品橱窗特效
Jan 09 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
loading动画特效小结
2017/01/22 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
使用JavaScript通过前端发送电子邮件
2020/05/22 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
2020/11/04 Javascript
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
Django 对IP访问频率进行限制的例子
2019/08/30 Python
Python列表元素常见操作简单示例
2019/10/25 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
python如何写个俄罗斯方块
2020/11/06 Python
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
科茨沃尔德家居商店:Scotts of Stow
2018/06/29 全球购物
How to spawning asynchronous work in J2EE
2016/08/29 面试题
外语系毕业生找工作的求职信
2013/11/28 职场文书
篝火晚会主持词
2014/03/25 职场文书
教职工代表大会主持词
2014/04/01 职场文书
公司授权委托书范本
2014/04/03 职场文书
请假条怎么写
2014/04/10 职场文书
课外活动实习计划
2015/01/19 职场文书
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL