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 简单的进度条实现代码
Mar 11 Javascript
JavaScript设计模式之建造者模式介绍
Dec 28 Javascript
JavaScript中创建字典对象(dictionary)实例
Mar 31 Javascript
javascript中Math.random()使用详解
Apr 15 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
Dec 04 Javascript
解决Mac安装thrift因bison报错的问题
May 17 Javascript
浅谈Vue组件及组件的注册方法
Aug 24 Javascript
vue--点击当前增加class,其他删除class的方法
Sep 15 Javascript
mpvue性能优化实战技巧(小结)
Apr 17 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
Feb 10 Javascript
JavaScript数组排序功能简单实现
May 14 Javascript
深入详解JS函数的柯里化
Jun 09 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
简单的cookie计数器实现源码
2013/06/07 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
CodeIgniter扩展核心类实例详解
2016/01/20 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
js Flash插入函数免激活代码
2009/03/31 Javascript
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
JavaScript中实现继承的三种方式和实例
2015/01/29 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
python实现保存网页到本地示例
2014/03/16 Python
Python实现注册登录系统
2017/08/08 Python
python中时间模块的基本使用教程
2019/05/14 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
三个儿子教学反思
2014/02/03 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
先进个人事迹材料
2014/12/29 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android