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 相关文章推荐
异步javascript的原理和实现技巧介绍
Nov 08 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
May 27 Javascript
Egret引擎开发指南之创建项目
Sep 03 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
Aug 05 Javascript
jQuery EasyUI Dialog拖不下来如何解决
Sep 28 Javascript
Bootstrap学习笔记之css组件(3)
Jun 07 Javascript
javascript数组去重方法分析
Dec 15 Javascript
深入理解vue.js中的v-if和v-show
Jun 22 Javascript
javascript  删除select中的所有option的实例
Sep 17 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
Jan 12 Javascript
vue源码解析之事件机制原理
Apr 21 Javascript
Vue实现图片与文字混输效果
Dec 04 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基础学习笔记
2007/03/18 PHP
php防注入及开发安全详细解析
2013/08/09 PHP
php数组删除元素示例
2014/03/21 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
为Yahoo! UI Extensions Grid增加内置的可编辑器
2007/03/10 Javascript
js 动态选中下拉框
2009/11/26 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
不用锚点也可以平滑滚动到页面的指定位置实现代码
2013/05/08 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
JS返回顶部实例代码
2020/08/09 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
Python单链表的简单实现方法
2014/09/23 Python
python实现数据图表
2017/07/29 Python
python中的迭代和可迭代对象代码示例
2017/12/27 Python
Python内置模块logging用法实例分析
2018/02/12 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
python中JWT用户认证的实现
2020/05/18 Python
Python如何向SQLServer存储二进制图片
2020/06/08 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
HTML5里autofocus自动聚焦属性使用介绍
2016/06/22 HTML / CSS
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
2014学雷锋活动总结
2014/03/09 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
写给导师的自荐信
2015/03/06 职场文书
Redis主从复制操作和配置详情
2022/09/23 Redis