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编程起步(第二课)
Jan 10 Javascript
javascript IE中的DOM ready应用技巧
Jul 23 Javascript
如何在一个页面显示多个百度地图
Apr 07 Javascript
jquery form 加载数据示例
Apr 21 Javascript
一个支持任意尺寸的图片上下左右滑动效果
Aug 24 Javascript
javascript跑马灯抽奖实例讲解
Apr 17 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
Nov 01 Javascript
Vue-cli@3.0 插件系统简析
Sep 05 Javascript
koa socket即时通讯的示例代码
Sep 07 Javascript
微信小程序停止其他视频播放当前视频的实例代码
Dec 25 Javascript
javascript+Canvas实现画板功能
Jun 23 Javascript
VUE项目实现主题切换的多种方法
Nov 26 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
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
9种方法优化jQuery代码详解
2020/02/04 jQuery
Python中List.index()方法的使用教程
2015/05/20 Python
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python实现带百分比的进度条
2016/06/28 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
Python语言描述随机梯度下降法
2018/01/04 Python
Python 使用 docopt 解析json参数文件过程讲解
2019/08/13 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
Python生成器常见问题及解决方案
2020/03/21 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
浅谈Python协程
2020/06/17 Python
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
NUK奶瓶美国官网:NUK美国
2016/09/26 全球购物
如何将字串String转换成整数int
2015/02/21 面试题
失业者真诚求职信范文
2013/12/25 职场文书
查环查孕证明
2014/01/10 职场文书
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript