js模拟类继承小例子


Posted in Javascript onJuly 17, 2010
//使用原型继承,中间使用临时对象作为Child的原型属性,临时对象的原型属性再指向父类的原型, 
//防止所有子类和父类原型属性都指向通一个对象. 
//这样当修改子类的原型属性,就不会影响其他子类和父类 
function extend(Child, Parent) { 
var F = function(){}; 
F.prototype = Parent.prototype; 
Child.prototype = new F(); 
Child.prototype.constructor = Child; 
Child.base = Parent.prototype; 
} function Parent(name) 
{ 
this.aa = 123; 
this.getName = function() {return name;}; //使用闭包模拟私有成员 
this.setName = function(value){name=value;}; 
} 
Parent.prototype.print = function(){alert("print!");}; 
Parent.prototype.hello = function() 
{ 
alert(this.getName() + "Parent") 
}; 
function Child(name,age) 
{ 
Parent.apply(this, arguments);//调用父类构造函数来继承父类定义的属性 
this.age = age; 
} 
extend(Child,Parent); //继承Parent 
Child.prototype.hello = function() //重写父类hello方法 
{ 
alert(this.getName() + "Child"); 
Parent.prototype.hello.apply(this,arguments); //调用父类同名方法 
}; 
//子类方法 
Child.prototype.doSomething = function(){ alert(this.age + "Child doSomething"); }; 
var p1 = new Child("xhan",22); 
var p2 = new Child("xxx",33); 
p1.hello(); 
p2.hello(); 
p1.doSomething(); //子类方法 
p1.print(); //父类方法 
alert(p1 instanceof Child); //true 
alert(p1 instanceof Parent);//true
Javascript 相关文章推荐
JavaScript Event事件学习第一章 Event介绍
Feb 07 Javascript
jQuery 选择器理解
Mar 16 Javascript
javascript学习笔记(九) js对象 设计模式
Jun 19 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
Apr 21 Javascript
javascript读取Xml文件做一个二级联动菜单示例
Mar 17 Javascript
微信小程序 闭包写法详细介绍
Dec 14 Javascript
JavaScript实现前端实时搜索功能
Mar 26 Javascript
Angularjs上传文件组件flowjs功能
Aug 07 Javascript
Vue组件选项props实例详解
Aug 18 Javascript
vue实现引入本地json的方法分析
Jul 12 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
Jul 30 Javascript
浅谈node.js中间件有哪些类型
Apr 29 Javascript
javascript 循环读取JSON数据的代码
Jul 17 #Javascript
一个可绑定数据源的jQuery数据表格插件
Jul 17 #Javascript
js跨域问题之跨域iframe自适应大小实现代码
Jul 17 #Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
Jul 17 #Javascript
jQuery Select(单选) 模拟插件 V1.3.62 改进版
Jul 17 #Javascript
基于jquery的Repeater实现代码
Jul 17 #Javascript
javascript onmouseout 解决办法
Jul 17 #Javascript
You might like
PHP学习之PHP变量
2006/10/09 PHP
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
js验证上传图片的方法
2015/05/12 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
2017/01/21 Javascript
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
关于RxJS Subject的学习笔记
2018/12/05 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
[01:00] DOTA2英雄背景故事第五期之重力引力法则谜团
2020/07/16 DOTA
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
浅谈python实现Google翻译PDF,解决换行的问题
2018/11/28 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
Python阶乘求和的代码详解
2020/02/14 Python
个人找工作自荐信格式
2013/09/21 职场文书
网络工程师个人的自我评价范文
2013/10/01 职场文书
一年级语文教学反思
2014/02/13 职场文书
国际商务专业求职信
2014/07/15 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
2014年信访工作总结
2014/11/17 职场文书
优秀教师事迹材料
2014/12/15 职场文书
销售督导岗位职责
2015/04/10 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书