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 相关文章推荐
在Z-Blog中运行代码[html][/html](纯JS版)
Mar 25 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
Jul 07 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
Nov 28 Javascript
JQuery工具函数汇总
Jun 15 Javascript
jQuery版本升级踩坑大全
Jan 12 Javascript
javascript每日必学之条件分支
Feb 17 Javascript
angular.fromJson与toJson方法用法示例
May 17 Javascript
vue上传图片组件编写代码
Jul 26 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
Aug 22 Javascript
浅谈vue-router2路由参数注意的问题
Nov 08 Javascript
Node.js实现批量下载图片简单操作示例
Jan 18 Javascript
JavaScript基于用户照片姓名生成海报
May 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
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
PHP经典面试题之设计模式(经常遇到)
2015/10/15 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
myFocus slide3D v1.1.0 使用方法与下载
2011/01/12 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
jquery验证表单中的单选与多选实例
2013/08/18 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
Javascript玩转继承(三)
2014/05/08 Javascript
jQuery功能函数详解
2015/02/01 Javascript
javascript实现简单的全选和反选功能
2016/01/05 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
总结Python编程中三条常用的技巧
2015/05/11 Python
python实现泊松图像融合
2018/07/26 Python
python使用folium库绘制地图点击框
2018/09/21 Python
python机器学习之神经网络实现
2018/10/13 Python
python画图的函数用法以及技巧
2019/06/28 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
python实现双色球随机选号
2020/01/01 Python
英语生日邀请函
2014/01/23 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
公共场所禁烟标语
2014/06/25 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
个人的事迹材料怎么写
2019/04/24 职场文书
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers