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 相关文章推荐
javascript英文日期(有时间)选择器
May 02 Javascript
弹出广告特效(一个IP只弹出一次)的代码
Jul 27 Javascript
javascript操作cookie_获取与修改代码
May 21 Javascript
JavaScript 学习笔记(十五)
Jan 28 Javascript
在次封装easyui-Dialog插件实现代码
Nov 14 Javascript
正则表达式搭配js轻松处理json文本方便而老古
Feb 17 Javascript
jQuery实现的一个自定义Placeholder属性插件
Aug 11 Javascript
jQuery中clearQueue()方法用法实例
Dec 29 Javascript
js实现文字闪烁特效的方法
Dec 17 Javascript
百度多文件异步上传控件webuploader基本用法解析
Nov 07 Javascript
vue非父子组件通信问题及解决方法
Jun 11 Javascript
微信小程序仿RadioGroup改变样式的处理方案
Jul 13 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 SQL之where语句生成器
2009/03/24 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
jQuery技巧总结
2011/01/01 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
javascript常用正则表达式汇总
2015/07/31 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
vue v-model表单控件绑定详解
2017/05/17 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
javascript设计模式 ? 建造者模式原理与应用实例分析
2020/04/10 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
Python实现CET查分的方法
2015/03/10 Python
Python探索之创建二叉树
2017/10/25 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
Django 多语言教程的实现(i18n)
2018/07/07 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
SQL Server笔试题
2012/01/10 面试题
在校生党员自我评价
2013/09/25 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书