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 相关文章推荐
javascript mouseover、mouseout停止事件冒泡的解决方案
Apr 07 Javascript
javascript使用activex控件的代码
Jan 27 Javascript
使用js如何实现全选与全不选
Dec 30 Javascript
js、jquery图片动画、动态切换示例代码
Jun 03 Javascript
jQuery计算文本框字数及限制文本框字数的方法
Mar 01 Javascript
javascript实现方法调用与方法触发小结
Mar 26 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
Aug 15 Javascript
Vue.js动态添加、删除选题的实例代码
Sep 30 Javascript
Bootstrap Table的使用总结
Oct 08 Javascript
javascript入门之string对象【新手必看】
Nov 22 Javascript
Vue.JS项目中5个经典Vuex插件
Nov 28 Javascript
原生js实现移动端触摸轮播的示例代码
Dec 22 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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
php xml留言板 xml存储数据的简单例子
2009/08/24 PHP
php array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
深入解析php之sphinx
2013/05/15 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
AngularJS指令详解及示例代码
2016/08/16 Javascript
基于Layer+jQuery的自定义弹框
2020/05/26 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
微信小程序实现订单倒计时
2020/11/01 Javascript
vue与django集成打包的实现方法
2019/11/11 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
django实现前后台交互实例
2017/08/07 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
详解python之协程gevent模块
2018/06/14 Python
Python实现最大子序和的方法示例
2019/07/05 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
详解python tkinter 图片插入问题
2020/09/03 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
CSS3实现swap交换动画
2016/01/19 HTML / CSS
Mavi牛仔裤美国官网:土耳其著名牛仔品牌
2016/09/24 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
《泉水》教学反思
2014/04/11 职场文书
2014年师德承诺书
2014/05/23 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
党的群众路线教育实践活动个人对照检查材料(乡镇)
2014/11/05 职场文书
基层组织建设年活动总结
2015/05/09 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
python 对图片进行简单的处理
2021/06/23 Python
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电