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 相关文章推荐
Bootstrap每天必学之基础排版
Nov 20 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
Jan 12 Javascript
angularjs表格分页功能详解
Jan 21 Javascript
Jquery组件easyUi实现表单验证示例
Aug 23 Javascript
利用js编写响应式侧边栏
Sep 17 Javascript
Vue.js原理分析之observer模块详解
Feb 17 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
Jul 06 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
Oct 24 jQuery
全面介绍vue 全家桶和项目实例
Dec 27 Javascript
jQuery使用动画队列自定义动画操作示例
Jun 16 jQuery
vue-simple-uploader上传成功之后的response获取代码
Sep 07 Javascript
ajax请求前端跨域问题原因及解决方案
Oct 16 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中调用ASP.NET的WebService的代码
2011/04/22 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
php分页示例分享
2014/04/30 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
jQuery简单实现隐藏以及显示特效
2015/02/26 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
js自定义回调函数
2015/12/13 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
vue组件实现弹出框点击显示隐藏效果
2020/10/26 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
微信小程序实现canvas分享朋友圈海报
2020/06/21 Javascript
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
更改Python的pip install 默认安装依赖路径方法详解
2018/10/27 Python
pyqt5 使用cv2 显示图片,摄像头的实例
2019/06/27 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
几道PHP的面试题
2012/05/19 面试题
会计专业应届生求职信
2013/11/24 职场文书
环保倡议书范文
2014/05/12 职场文书
2014年无财产无子女离婚协议书范本
2014/10/09 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
毕业论文致谢范文
2015/05/14 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
Python测试框架pytest高阶用法全面详解
2022/06/01 Python
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技