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 相关文章推荐
Firefox div高度自适应
Apr 28 Javascript
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
Mar 14 Javascript
JavaScript 开发规范要求(图文并茂)
Jun 11 Javascript
JQuery给元素添加/删除节点比如select
Apr 02 Javascript
js时间戳转为日期格式的方法
Dec 28 Javascript
原生JavaScript实现瀑布流布局
Jun 28 Javascript
jQuery版本升级踩坑大全
Jan 12 Javascript
jquery Ajax 全局调用封装实例详解
Jan 16 Javascript
Linux CentOS系统下安装node.js与express的方法
Apr 01 Javascript
解决在layer.open中使用时间控件laydate失败的问题
Sep 11 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
Aug 07 Javascript
vue实现滚动鼠标滚轮切换页面
Dec 13 Vue.js
收集的一些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 判断常量,变量和函数是否存在
2009/04/26 PHP
php笔记之常用文件操作
2010/10/12 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
javascript prototype原型操作笔记
2009/12/07 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
2016/06/14 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
jQuery实现的购物车物品数量加减功能代码
2016/11/16 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
python strip()函数 介绍
2013/05/24 Python
Python中操作MySQL入门实例
2015/02/08 Python
python如何在终端里面显示一张图片
2016/08/17 Python
用python爬取租房网站信息的代码
2018/12/14 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
Python super()函数使用及多重继承
2020/05/06 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
SQL Server里面什么样的视图才能创建索引
2015/04/17 面试题
财务会计人员岗位职责
2013/11/30 职场文书
演讲稿格式范文
2014/05/19 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
2014年班组工作总结
2014/11/20 职场文书
单位租车协议书
2015/01/29 职场文书
宣传委员竞选稿
2015/11/19 职场文书
2016感恩父亲节主题广播稿
2015/12/18 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python