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 相关文章推荐
HTML页面如何象ASP一样接受参数
Feb 07 Javascript
jquery ajax 简单范例(界面+后台)
Nov 19 Javascript
javascript确认框的三种使用方法
Dec 17 Javascript
jQuery中prevAll()方法用法实例
Jan 08 Javascript
javascript动态创建链接的方法
May 13 Javascript
JavaScript中String.match()方法的使用详解
Jun 06 Javascript
利用Javascript仿Excel的数据透视分析功能
Sep 07 Javascript
JS实现的数字格式化功能示例
Feb 10 Javascript
详解vue 数组和对象渲染问题
Sep 21 Javascript
React项目动态设置title标题的方法示例
Sep 26 Javascript
详解服务端预渲染之Nuxt(介绍篇)
Apr 07 Javascript
vue解决花括号数据绑定不成功的问题
Oct 30 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 self,$this,const,static,->的使用
2009/10/22 PHP
PHP实现支持SSL连接的SMTP邮件发送类
2015/03/05 PHP
如何使用php实现评委评分器
2015/07/31 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
JavaScript 仿关机效果的图片层
2008/12/26 Javascript
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
2015/11/04 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
关于Python中定制类的比较运算实例
2019/12/19 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
共青团员自我评价
2015/03/10 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书
Python入门学习之类的相关知识总结
2021/05/25 Python