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编程起步(第七课)
Jan 10 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
Nov 28 Javascript
dreamweaver 8实现Jquery自动提示
Dec 04 Javascript
fastclick插件导致日期(input[type="date"])控件无法被触发该如何解决
Nov 09 Javascript
通过BootStrap实现轮播图的实际应用
Sep 26 Javascript
easyui messager alert 三秒后自动关闭提示的实例
Nov 07 Javascript
基于JavaScript实现移动端无限加载分页
Mar 27 Javascript
js使用i18n实现页面国际化的方法
May 09 Javascript
react+redux的升级版todoList的实现
Dec 18 Javascript
Vue开发实现吸顶效果的示例代码
Aug 21 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
Aug 24 Javascript
微信小程序实现简单购物车功能
Dec 30 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
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
Vue form 表单提交+ajax异步请求+分页效果
2017/04/22 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
python实现目录树生成示例
2014/03/28 Python
python进程管理工具supervisor使用实例
2014/09/17 Python
tensorflow训练中出现nan问题的解决
2018/02/10 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
解析Python3中的Import
2019/10/13 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
大四自我鉴定范文
2013/10/06 职场文书
机械电子工程毕业生自荐信
2013/11/23 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
教师求职自荐信范文
2015/03/04 职场文书