js对象的构造和继承实现代码


Posted in Javascript onDecember 05, 2010
<script> 
//定义js的user对象 
function User(name,age){ 
this.name=name, 
this.age=age, 
this.getName=function(){ 
return this.name; 
}, 
this.getAge=function(){ 
return this.age; 
} 
} 
//实例化一个对象 
var use=new User("aa",21); 
alert(use.name); 
alert(use.getAge()); 
//js对象继承 
/* 
3water.com 在面向对象的编程方法中,对象继承是必不可少的,那么怎么在javascript中实现继承机制呢。由于javascript并不是一个严格的面向对象的语言,因此在对象继承上也显的不一样。我们也来创建一个基类Polygon,代表一个多边形,一个多边形有个共同的属性就是边数(sides)和一个共同的方法计算面积(getAreas)。这样我们的这具Polygon类看起来就像下面这样定义: 
*/ 
function Polygon(iSides){ 
this.sides = iSides; 
} 
Polygon.prototype.getAreas = function(){ 
return 0; 
} 
/* 
因为基类并不能确定面积,因此在这里我们返回为0。 
接着我们就创建一个子类Triangle,一个三角形,显然这个三角形是要从多边形继承的,因此我们要让这个Triangle类继承Polygon类,并且要覆盖Polygon类的getAreas方法来返回三角形的面积。我们来看下在javascript中的实现: 
*/ 
function Triangle(iBase, iHeight){ 
Polygon.call(this,3); //在这里我们用Polygon.call()来调用Polygon的构造函数,并将3作为参数,表示这是一个三角形,因为边是确定的,所以在子类的构造函数中就不需要指定边了 
this.base = iBase; //三角形的底 
this.height = iHeight; //三角形的高 
} 
Triangle.prototype = new Polygon(); 
Triangle.prototype.getAreas = function(){ 
return 0.5 * this.base *this.height; //覆盖基类的getAreas方法,返回三角形的面积 
} /* 
参考上面的实现,我们再定义一个矩形: 
*/ 
function Rectangle(iWidth, iHeight){ 
Polygon.call(this,4); 
this.width = iWidth; 
this.height = iHeight; 
} 
Rectangle.prototype = new Polygon(); 
Rectangle.prototype.getAreas = function(){ 
return this.width * this.height; 
} 
/* 
好了,上面我们定义了一个基类和两个子数,下面我们来测试一个这两个子类是否能正常工作: 
*/ 
var t = new Triangle(3,6); 
var r = new Rectangle(4,5); 
alert(t.getAreas()); //输出9说明正确 
alert(r.getAreas()); //输出20说明正确 
</script>
Javascript 相关文章推荐
javascript的对话框详解与参数
Mar 08 Javascript
javascript 选择文件夹对话框(web)
Jul 07 Javascript
JS中for循序中延迟加载动态效果的具体实现
Aug 18 Javascript
jQuery中next()方法用法实例
Jan 07 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
Apr 14 Javascript
JS实现简单的tab切换选项卡效果
Sep 21 Javascript
动态Axios的配置步骤详解
Jan 12 Javascript
微信小程序如何刷新当前界面的实现方法
Jun 07 Javascript
vue如何实现自定义底部菜单栏
Jul 01 Javascript
layui表单验证select下拉框实现验证的方法
Sep 05 Javascript
vue Tab切换以及缓存页面处理的几种方式
Nov 05 Javascript
vue使用一些外部插件及样式的配置代码
Nov 18 Javascript
收集的一些Array及String原型对象的扩展实现代码
Dec 05 #Javascript
script标签的 charset 属性使用说明
Dec 04 #Javascript
本地对象Array的原型扩展实现代码
Dec 04 #Javascript
悄悄用脚本检查你访问过哪些网站的代码
Dec 04 #Javascript
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
Dec 04 #Javascript
高效的表格行背景隔行变色及选定高亮的JS代码
Dec 04 #Javascript
javascript innerHTML使用分析
Dec 03 #Javascript
You might like
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
用PHP实现 上一篇、下一篇的代码
2012/09/29 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
phpStorm2020 注册码
2020/09/17 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
javascript 闭包疑问
2010/12/30 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
Three.js快速入门教程
2016/09/09 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
python实现多线程的两种方式
2016/05/22 Python
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
Python基于smtplib模块发送邮件代码实例
2020/05/29 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
Python 绘制可视化折线图
2020/07/22 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
结合CSS3的布局新特征谈谈常见布局方法
2016/01/22 HTML / CSS
安踏官方商城:anta.cn
2019/12/16 全球购物
广州地球村科技数据库题目
2016/04/25 面试题
办公室保洁员岗位职责
2013/12/02 职场文书
工程资料员岗位职责
2014/03/10 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
文艺委员竞选稿
2015/11/19 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
Python多线程实用方法以及共享变量资源竞争问题
2022/04/12 Python