Extjs中使用extend(js继承) 的代码


Posted in Javascript onMarch 15, 2012

注:抄<深入浅出Extjs>书
传统的js实现继承操作为:
一:定义一个父类

var BaseClass = function(){ 
//..... 
}; 
BaseClass.prototype.someMethod = function(){ 
//..... 
}; 
BaseClass.prototype.overridenMethod = function(){ 
//.... 
}

为BaseClass定义两个函数someMethod 和overridenMethod ,,然后定义一个subClass子类,可以直接从BaseClass中继承所有的属性和函数,
var subClass = function(){ 
BaseClass.call(this); 
}; 
subClass.prototype = new BaseClass(); 
subClass.prototype.newMethod = function(){ 
//... 
}; 
subClass.prototype.overridenMethod = function(){ 
//... 
}

在上面的代码中,subClass的构造函数首先调用BaseClass的构造函数初始化数据,然后通过subClass.prototype = new BaseClass();这条语句让subClass类获得BaseClass中的所有属性和函数。这样就实现了继承。在此之后我们就可以操作subClass的prototype,为子类添加新的函数或者覆写父类的同名函数。
在EXT中使用Ext.extend()函数实现继承功能的方法:
var subClass = function(){ 
subClass.superclass.costructor.call(this); 
}; 
Ext.extend(subClass, BaseClass,{ 
newMethod: function(){ 
//... 
}, 
overridenMethod : function(){ 
//.... 
} 
});

在Ext.extend()函数通过 subClass.superclass.costructor.call(this);就可以直接调用父类的构造函数。这个函数的第一个参数总是this, 以确保父类的构造函数在子类的作用域里工作。
如果父类的构造函数需要传入参数,我们也就可以将所需要的参数直接传给它,如:
subClass.superclass.costructor.call(this, config);
这样我们就得到了一个继承了父类的所有属性和函数的子类。
Javascript 相关文章推荐
jquery ajax 同步异步的执行示例代码
Jun 23 Javascript
JQuery优缺点分析说明
Apr 10 Javascript
浅析JavaScript中的类型和对象
Nov 29 Javascript
Bootstrap每天必学之导航条
Nov 27 Javascript
有关jQuery中parent()和siblings()的小问题
Jun 01 Javascript
Jquery ajax请求导出Excel表格的实现代码
Jun 08 Javascript
JS实现环形进度条(从0到100%)效果
Jul 05 Javascript
微信小程序开发之实现自定义Toast弹框
Jun 08 Javascript
微信小程序实现手势滑动效果
Aug 26 Javascript
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 jQuery
vue 在methods中调用mounted的实现操作
Aug 07 Javascript
JavaScript实现复选框全选和取消全选
Nov 20 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
Mar 15 #Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
Mar 14 #Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
Mar 14 #Javascript
javascript 进阶篇2 CSS XML学习
Mar 14 #Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
Mar 14 #Javascript
javascript 基础篇4 window对象,DOM
Mar 14 #Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
Mar 14 #Javascript
You might like
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
php设计模式之命令模式的应用详解
2013/05/21 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
window.ActiveXObject使用说明
2010/11/08 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
跟我学习javascript的定时器
2015/11/19 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
vue 做移动端微信公众号采坑经验记录
2018/04/26 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
2018/12/06 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
python利用beautifulSoup实现爬虫
2014/09/29 Python
Python selenium文件上传方法汇总
2020/11/19 Python
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
python使用递归的方式建立二叉树
2019/07/03 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
matplotlib绘制正余弦曲线图的实现
2021/02/22 Python
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
雷蛇美国官网:Razer
2020/04/03 全球购物
金融专业个人的自我评价
2013/10/18 职场文书
交警个人先进事迹材料
2014/05/11 职场文书
幼儿园六一儿童节活动方案
2014/08/26 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
爱护环境建议书
2015/09/14 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS
html5调用摄像头截图功能
2022/01/18 Javascript
KVM基础命令详解
2022/04/30 Servers