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 相关文章推荐
Ext javascript建立超链接,进行事件处理的实现方法
Mar 22 Javascript
js判断iframe内的网页是否滚动到底部触发事件
Mar 18 Javascript
一个支付页面DEMO附截图
Jul 22 Javascript
js设置控件的隐藏与显示的两种方法
Aug 21 Javascript
jQuery的text()方法用法分析
Dec 20 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
Jun 09 Javascript
jQuery实现定时读取分析xml文件的方法
Jul 16 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
Jun 08 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
Aug 05 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
Mar 23 jQuery
解决npm管理员身份install时出现权限的问题
Mar 16 Javascript
前端使用crypto.js进行加密的函数代码
Aug 16 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
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
基于php-fpm的配置详解
2013/06/03 PHP
33道php常见面试题及答案
2015/07/06 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
redis+php实现微博(一)注册与登录功能详解
2019/09/23 PHP
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
2012/11/08 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
一个获取第n个元素节点的js函数
2014/09/02 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
2017/05/02 Javascript
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
如何在python中使用selenium的示例
2017/12/26 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
Python多线程处理实例详解【单进程/多进程】
2019/01/30 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
Python中的Cookie模块如何使用
2020/06/04 Python
详解Flask前后端分离项目案例
2020/07/24 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
英国折扣零售连锁店:QD Stores
2018/12/08 全球购物
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
总经理助理岗位职责
2013/11/08 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
2014年公司庆元旦活动方案
2014/03/05 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
2015大学生求职信范文
2015/03/20 职场文书