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 相关文章推荐
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
Dec 27 Javascript
JavaScript与DropDownList 区别分析
Jan 01 Javascript
JavaScript Accessor实现说明
Dec 06 Javascript
jQuery中读取json文件示例代码
May 10 Javascript
下拉列表select 由左边框移动到右边示例
Dec 04 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
Nov 17 Javascript
Javascript类型系统之undefined和null浅析
Jul 13 Javascript
浅谈javascript:两种注释,声明变量,定义函数
Sep 29 Javascript
js实现图片上传并预览功能
Aug 06 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
Apr 24 Javascript
在Vue中使用icon 字体图标的方法
Jun 14 Javascript
微信小程序实现类似微信点击语音播放效果
Mar 30 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
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
PHP系统命令函数使用分析
2013/07/05 PHP
php使用curl访问https示例分享
2014/01/17 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
js比较日期大小的方法
2015/05/12 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
angularjs性能优化的方法
2018/09/05 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
2019/12/20 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
Python根据服务获取端口号的方法
2019/09/25 Python
YUV转为jpg图像的实现
2019/12/09 Python
Pytorch中.new()的作用详解
2020/02/18 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
社区庆八一活动方案
2014/02/02 职场文书
文明宿舍获奖感言
2014/02/07 职场文书
中央空调节能方案
2014/06/15 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
污水处理保证书
2015/05/09 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
一年级语文教学随笔
2015/08/14 职场文书
初一数学教学反思
2016/02/17 职场文书
如何理解python接口自动化之logging日志模块
2021/06/15 Python