Javascript 面向对象 继承


Posted in Javascript onMay 13, 2010
var JsObject = {} || new Object(); 
JsObject.extend = function(subClass, superClass){ 
 //先判断子类subClass是否已经定义,如果未定义,则重新定义类。 

if(typeof subClass == "undefined")subClass = function(){}; 

  //如果父类superClass是类,则转化成对象 

 if(typeof superClass == "function")superClass = new superClass(); 

 //遍历父类superClass对象中的属性和方法 
for(var p in superClass) 
{ 


 /*将父类superClass对象中的属性和方法复制到子类prototype对象中, 


 因此子类拥有父类的所有特性,即为继承 */
  
subClass.prototype[p] = superClass[p]; 
} 
return subClass; 
}; 
function Student() 
{ 
this.name = "张三"; 
this.updateName = function(name){ 
this.name = name; 
} 
} 
function Class1() 
{ 
this.sex = "男"; 
this.updateSex = function(sex){ 
this.sex = sex; 
} 
} 
//定义类Class1继承Student类 
Class1 = JsObject.extend(Class1, Student); 
var obj = new Class1(); 
alert(obj.sex); 
alert(obj.name); 
obj.updateSex("女"); 
obj.updateName("玛丽"); 
alert(obj.sex); 
alert(obj.name);

结果显示:男,张三,女,玛丽
Javascript 相关文章推荐
模拟select的代码
Oct 19 Javascript
JS保存和删除cookie操作 判断cookie是否存在
Nov 13 Javascript
javascript中的循环语句for语句深入理解
Apr 04 Javascript
JavaScript保存并运算页面中数字类型变量的写法
Jul 06 Javascript
jQuery排序插件tableSorter使用方法
Feb 10 Javascript
vue2.0父子组件间通信的实现方法
Apr 19 Javascript
javascript实现延时显示提示框效果
Jun 01 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
在vscode中统一vue编码风格的方法
Feb 22 Javascript
在vue中使用setInterval的方法示例
Apr 16 Javascript
javascript json对象小技巧之键名作为变量用法分析
Nov 11 Javascript
jquery插件实现悬浮的菜单
Apr 24 jQuery
Javascript 面向对象 对象(Object)
May 13 #Javascript
Javascript 面向对象 命名空间
May 13 #Javascript
javascript 面向对象 function类
May 13 #Javascript
该如何加载google-analytics(或其他第三方)的JS
May 13 #Javascript
Javascript 面向对象 继承
May 13 #Javascript
Javascript 面向对象 重载
May 13 #Javascript
JavaScript 面向对象的 私有成员和公开成员
May 13 #Javascript
You might like
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
smarty表格换行实例
2014/12/15 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
[29:23]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场1
2014/05/23 DOTA
python批量修改文件后缀示例代码分享
2013/12/24 Python
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
python实现计算倒数的方法
2015/07/11 Python
python连接mysql实例分享
2016/10/09 Python
python与字符编码问题
2019/05/24 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
Smashbox官网:美国知名彩妆品牌
2017/01/05 全球购物
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
水电站项目建议书
2014/05/12 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
如何利用STAR法则制作留学文书?
2019/08/26 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis
Python 中的Sympy详细使用
2021/08/07 Python
MySQL 数据 data 基本操作
2022/05/04 MySQL