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 相关文章推荐
form中限制文本字节数js代码
Jun 10 Javascript
Javascript 调试利器 Firebug使用详解六
Jul 05 Javascript
JavaScript 异步调用框架 (Part 1 - 问题 & 场景)
Aug 03 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
Sep 02 Javascript
js中单引号与双引号冲突问题解决方法
Oct 04 Javascript
jquery选择checked在ie8普通模式下的问题
Feb 12 Javascript
JavaScript模块化开发之SeaJS
Dec 13 Javascript
微信小程序 聊天室简单实现
Apr 19 Javascript
jQuery实现点击关注和取消功能
Jul 03 jQuery
vue监听对象及对象属性问题
Aug 20 Javascript
vue项目创建步骤及路由router
Jan 14 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
Oct 15 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中smarty实现多模版网站的方法
2015/06/11 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
对联广告js flash激活
2006/10/19 Javascript
javascript脚本编程解决考试分数统计问题
2008/10/18 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
2014/03/20 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
2015/11/09 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
关于JS中的方法是否加括号的问题
2016/07/27 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
js实现弹窗暗层效果
2017/01/16 Javascript
canvas实现钟表效果
2017/02/13 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
python使用any判断一个对象是否为空的方法
2014/11/19 Python
关于Python 中的时间处理包datetime和arrow的方法详解
2020/03/19 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
市场营销个人求职信范文
2014/02/02 职场文书
工作鉴定评语
2014/05/04 职场文书
滞留工资返还协议书
2014/10/19 职场文书
单位推荐信范文
2015/03/27 职场文书
2015年行政部工作总结
2015/04/28 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书