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 应用技巧集合[推荐]
Aug 30 Javascript
三级下拉菜单的js实现代码
May 23 Javascript
javascript string字符串优化问题
Jul 31 Javascript
js使用函数绑定技术改变事件处理程序的作用域
Dec 26 Javascript
jQuery提交多个表单的小例子
Jun 30 Javascript
Bootstrap每天必学之导航
Nov 26 Javascript
JavaScript中的操作符类型转换示例总结
May 30 Javascript
Bootstrap前端开发案例一
Jun 17 Javascript
使用clipboard.js实现复制功能的示例代码
Oct 16 Javascript
Angular浏览器插件Batarang介绍及使用
Feb 07 Javascript
JS实现数组删除指定元素功能示例
Jun 05 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
Nov 07 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 IP及IP段进行访问限制的代码
2008/12/17 PHP
关于PHP堆栈与列队的学习
2013/06/21 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
2008/09/25 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
Grid得到选择行数据的方法总结
2011/01/17 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
2017/05/18 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
js实现选项卡效果
2020/03/07 Javascript
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
Python中拆分字符串的操作方法
2019/07/23 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
HTML5实现视频弹幕功能
2019/08/09 HTML / CSS
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
优秀教研组申报材料
2014/12/26 职场文书
OpenCV全景图像拼接的实现示例
2021/06/05 Python