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对象模型-执行模型
Apr 28 Javascript
JavaScript获取多个数组的交集简单实例
Nov 11 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
May 22 Javascript
jQuery实现带分组数据的Table表头排序实例分析
Nov 24 Javascript
你不知道的高性能JAVASCRIPT
Jan 18 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
Apr 26 Javascript
微信小程序实现打开内置地图功能【附源码下载】
Dec 07 Javascript
微信小程序解析富文本过程详解
Jul 13 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
Sep 13 Javascript
react MPA 多页配置详解
Oct 18 Javascript
vue相同路由跳转强制刷新该路由组件操作
Aug 05 Javascript
js闭包的9个使用场景
Dec 29 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
php 一元分词算法
2009/11/30 PHP
浅析php原型模式
2014/11/25 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
2007/01/09 Javascript
从Ajax到JQuery Ajax学习
2007/02/14 Javascript
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
vue 获取元素额外生成的data-v-xxx操作
2020/09/09 Javascript
对IPython交互模式下的退出方法详解
2019/02/16 Python
python tkinter控件布局项目实例
2019/11/04 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
Selenium之模拟登录铁路12306的示例代码
2020/07/31 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
英文简历自荐信范文
2013/12/11 职场文书
单位刻章介绍信范文
2014/01/11 职场文书
迟到早退检讨书
2014/02/10 职场文书
经典演讲稿汇总
2014/05/19 职场文书
党在我心中的演讲稿
2014/09/13 职场文书
2014年教学工作总结
2014/11/13 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
邀请函模板
2015/02/02 职场文书
python 破解加密zip文件的密码
2021/04/22 Python