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 相关文章推荐
Stop SQL Server
Jun 21 Javascript
javascript与webservice的通信实现代码
Dec 25 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
Nov 01 Javascript
JavaScript获取图片真实大小代码实例
Sep 24 Javascript
JS时间特效最常用的三款
Aug 19 Javascript
js省市县三级联动效果实例
Apr 15 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
Dec 16 Javascript
React 使用recharts实现散点地图的示例代码
Dec 07 Javascript
详解JavaScript中关于this指向的4种情况
Apr 18 Javascript
vue.js实现左边导航切换右边内容
Oct 21 Javascript
js实现简单进度条效果
Mar 25 Javascript
jQuery实现广告显示和隐藏动画
Jul 04 jQuery
收集的一些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学习之PHP运算符
2006/10/09 PHP
一个数据采集类
2007/02/14 PHP
php中static静态变量的使用方法详解
2010/06/04 PHP
PHP URL路由类实例
2013/11/12 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
javascript之分片上传,断点续传的实际项目实现详解
2019/09/05 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python中数字以及算数运算符的相关使用
2015/10/12 Python
python与C互相调用的方法详解
2017/07/14 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
Python sorted排序方法如何实现
2020/03/31 Python
Keras自定义IOU方式
2020/06/10 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
彪马英国官网:PUMA英国
2019/02/11 全球购物
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
敬老院志愿者活动总结
2015/05/06 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书
MySQL系列之开篇 MySQL关系型数据库基础概念
2021/07/02 MySQL
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫