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 漂亮的删除确认和提交无刷新删除示例
Nov 13 Javascript
网站基于flash实现的Banner图切换效果代码
Oct 14 Javascript
基于jquery实现轮播特效
Apr 22 Javascript
JS阻止事件冒泡行为和闭包的方法
Jun 16 Javascript
Bootstrap模态框禁用空白处点击关闭
Oct 20 Javascript
js css3实现图片拖拽效果
Mar 04 Javascript
vue语法之拼接字符串的示例代码
Oct 25 Javascript
Vue filter介绍及详细使用
Apr 04 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
Jan 08 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
Sep 06 Javascript
vue - vue.config.js中devServer配置方式
Oct 30 Javascript
javascript利用键盘控制小方块的移动
Apr 20 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中计算时间差的几种方法
2009/12/31 PHP
PHP转换IP地址到真实地址的方法详解
2013/06/09 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
js程序中美元符号$是什么
2008/06/05 Javascript
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
JavaScript函数模式详解
2014/11/07 Javascript
微信企业号开发之微信考勤Cookies的使用
2015/09/11 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
jQuery基于muipicker实现仿ios时间选择
2016/02/22 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
vue中rem的配置的方法示例
2018/08/30 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
django1.8使用表单上传文件的实现方法
2016/11/04 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
Python绘制频率分布直方图的示例
2019/07/08 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
旅游管理专业学生求职信
2013/09/28 职场文书
售后服务科岗位职责范文
2013/11/13 职场文书
高二生物教学反思
2014/01/27 职场文书
如何写好优秀的创业计划书
2014/01/30 职场文书
五年级英语教学反思
2014/01/31 职场文书
企业节能减排实施方案
2014/03/19 职场文书
黄金酒广告词
2014/03/21 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
如何使用python包中的sched事件调度器
2022/04/30 Python