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+thickbox仿校内登录注册框
Jun 07 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
Jan 09 Javascript
jquery实现弹出窗口效果的实例代码
Nov 28 Javascript
JS拖拽组件学习使用
Jan 19 Javascript
JS判断两个对象内容是否相等的方法示例
Apr 10 Javascript
js实现图片粘贴上传到服务器并展示的实例
Nov 08 Javascript
详解如何在vue项目中引入elementUI组件
Feb 11 Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 Javascript
深入了解javascript 数组的sort方法
Jun 01 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
Jun 19 jQuery
中高级前端必须了解的JS中的内存管理(推荐)
Jul 04 Javascript
基于JavaScript实现简单扫雷游戏
Jan 02 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类
2006/11/25 PHP
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
浅析Cookie中的Path与domain
2013/12/18 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
2016/10/05 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
python smtplib模块发送SSL/TLS安全邮件实例
2015/04/08 Python
python 异常处理总结
2016/10/18 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
python实现单向链表详解
2018/02/08 Python
python-opencv颜色提取分割方法
2018/12/08 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
html5手机端页面可以向右滑动导致样式受影响的问题
2018/06/20 HTML / CSS
介绍一下linux的文件系统
2015/10/06 面试题
写好自荐信的几个要点
2013/12/26 职场文书
文明家庭先进事迹材
2014/01/27 职场文书
免职证明样本
2014/10/23 职场文书
2014年组织部工作总结
2014/11/14 职场文书
工作会议通知
2015/04/15 职场文书
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang