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 相关文章推荐
showModelessDialog()使用详解
Sep 21 Javascript
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
Mar 27 Javascript
jQuery操作input值的各种方法总结
Nov 21 Javascript
js获取客户端网卡的IP地址、MAC地址
Mar 26 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
Jan 23 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
Mar 21 Javascript
jQuery插件Validation快速完成表单验证的方式
Jul 28 Javascript
jQuery焦点图轮播效果实现方法
Dec 19 Javascript
JQuery获取鼠标进入和离开容器的方向
Dec 29 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
Jan 23 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
Sep 14 Javascript
vue2.0 和 animate.css的结合使用
Dec 12 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/01 无线电
php错误级别的设置方法
2013/06/17 PHP
php获取淘宝分类id示例
2014/01/16 PHP
CentOS安装php v8js教程
2015/02/26 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
2017/04/18 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
[00:35]可解锁地面特效
2018/12/20 DOTA
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
Python运算符重载用法实例分析
2015/06/01 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
python 如何调用 dubbo 接口
2020/09/24 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
餐厅总厨求职信
2014/03/04 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
运动会加油稿100字
2014/09/19 职场文书
三人合伙协议书范本
2014/10/29 职场文书
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers
SQL Server中锁的用法
2022/05/20 SQL Server