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 相关文章推荐
使用jquery插件实现图片延迟加载技术详细说明
Mar 12 Javascript
详谈JavaScript内存泄漏
Nov 14 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
Mar 26 Javascript
AngularJS基础 ng-model-options 指令简单示例
Aug 02 Javascript
javascript 定时器工作原理分析
Dec 03 Javascript
利用jquery如何从json中读取数据追加到html中
Dec 01 jQuery
vue iView 上传组件之手动上传功能
Mar 16 Javascript
浅析vue.js数组的变异方法
Jun 30 Javascript
小程序图片剪裁加旋转的示例代码
Jul 10 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
原生JS实现无缝轮播图片
Jun 24 Javascript
浅析JavaScript预编译和暗示全局变量
Sep 03 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使用静态方法的几个注意事项
2014/09/16 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
jquery不支持toggle()高(新)版本的问题解决
2016/09/24 PHP
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
javascript获取select标签选中的值
2016/06/04 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
2016/03/02 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
python3.7调试的实例方法
2020/07/21 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
经典而简洁的婚礼主持词
2014/03/13 职场文书
副护士长竞聘演讲稿
2014/04/30 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
教师党员批评与自我批评
2014/10/15 职场文书
期末考试复习计划
2015/01/19 职场文书
避暑山庄导游词
2015/02/04 职场文书
主持人大赛开场白
2015/05/29 职场文书
中秋节晚会开场白
2015/05/29 职场文书
党支部半年考察意见
2015/06/01 职场文书
公务员学习中国梦心得体会
2016/01/05 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL