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 相关文章推荐
快速解决jQuery与其他库冲突的方法介绍
Jan 02 Javascript
js清空表单数据的两种方式(遍历+reset)
Jul 18 Javascript
告诉你什么是javascript的回调函数
Sep 04 Javascript
jQuery UI库中dialog对话框功能使用全解析
Apr 23 Javascript
Angular 应用技巧总结
Sep 14 Javascript
详解获取jq ul第一个li定位的四种解决方案
Nov 23 Javascript
详解JavaScript的内置对象
Dec 07 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
Jul 24 Javascript
简述JS控制台的使用
Jul 15 Javascript
js实现input密码框显示/隐藏功能
Sep 10 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
Jun 29 Javascript
简单了解three.js 着色器材质
Aug 03 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图片上传程序
2008/03/27 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
php简单smarty入门程序实例
2015/06/11 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
脚本收藏iframe
2006/07/21 Javascript
一个js实现的所谓的滑动门
2007/05/23 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
js获取form的方法
2015/05/06 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
javascript+html5+css3自定义提示窗口
2017/06/21 Javascript
vue中添加mp3音频文件的方法
2018/03/02 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
layui时间控件选择时间范围的实现方法
2019/09/28 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
vue实例的选项总结
2020/06/09 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
python分析nignx访问日志脚本分享
2015/02/26 Python
python使用post提交数据到远程url的方法
2015/04/29 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
python画环形图的方法
2020/03/25 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
Python脚本实现Zabbix多行日志监控过程解析
2020/08/26 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
历史专业毕业生的自我鉴定
2013/11/15 职场文书
小学生安全保证书
2014/02/01 职场文书
关于安全演讲稿
2014/05/09 职场文书
班组拓展活动方案
2014/08/14 职场文书
保洁员岗位职责
2015/02/04 职场文书
教师培训学习心得体会
2016/01/21 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android