ext 浅谈类的实例
打开ext的API,如下
找到Class这个选项
将鼠标移到config那里可以看到有以下属性:
好了,让我们开始进入主题:
首先,来讲讲如何自定义一个类,在ext中,创建一个类其实与其他语言差不多,只是表达的方式不一样而已,下面是定义一个类的方法
<!--*********************************************--> <!--类的创建--> Ext.define('Father', { name: 'Unknown', constructor: function(name) { if (name) { this.name = name; Ext.Msg.alert('I\'m hungry','I want to eat'); } }, eat:function(){ Ext.Msg.alert('I\'m hungry,I want to eat'); } }) var aaron = Ext.create('Father', 'Aaron'); <!--*********************************************-->
既然,我们知道了如何定义一个类了,那么我们就要知道他是如何继承的了,用到上图中的extend这个属性 ,方法如下 :
Ext.define('Person', {
say: function(text) { alert(text); }
});
Ext.define('Developer', {
extend: 'Person',
say: function(text) { this.callParent(["print "+text]); }
});
用mixins来实现多继承,如下:
Ext.define('Singer', { sing: function() { alert("For he's a jolly good fellow...") } }); Ext.define('Dancer', { dance: function() { alert("For he's a jolly Dance...") } }); Ext.define('Musician', { mixins: { tom:'Singer', jery:'Dancer' }, sing:function(){ alert(123); // this.mixins.canSing.sing.call(this); } }) var kk=Ext.create('Musician'); kk.sing(); kk.mixins.tom.sing.call(this); kk.dance();
用alias来为类设置别名:
<!--alias的用法,使用alias时注意,名称必须为小写-->
/*Ext.define('MyApp.CoolPanel', {
extend:'Ext.panel.Panel',
alias: ['widget.coolpanel','widget.coolpanel2'],
hehe:function(){Ext.Msg.alert('hehe','hehe')},
title: 'Yeah!'
});*/
//通过Ext.widget()创建实例
/*Ext.widget('coolpanel', {
width : 100,
height : 100 ,
style: {
color: '#FFFFFF',
backgroundColor:'#000000'
},
renderTo:Ext.getBody()
});*/
//通过xtype创建
/*Ext.widget('coolpanel', {
width : 200,
height : 200 ,
items: [
{xtype: 'coolpanel2', html: 'Foo'},
{xtype: 'coolpanel2', html: 'Bar'}
],
renderTo:Ext.getBody()
});*/
<!--alternateClassName的用法,跟alias有点类似-->
/*Ext.define('Developer', {
alternateClassName: ['Coder', 'Hacker'],
code: function(msg) {
alert('Typing... ' + msg);
}
});
var joe = Ext.create('Developer');
joe.code('stackoverflow');
var rms = Ext.create('Hacker');
rms.code('hack hack');*/
<!--*********************************************-->
<!--inheritableStatics 定义静态方法,可以被子类继承,类似于static,但static是不可以被子类继承-->
/*Ext.define('Human', {
inheritableStatics : {
eat : function(){
alert('eat');
}
},
say: function(text) { alert(text); }
});
Ext.define('Man', {
extend : 'Human'
});
Man.eat(); */
<!--*********************************************-->
<!--*********************************************-->
/*uses 和 requires : 与requires属性类似,都是对某些类进行引用
uses -- 被引用的类可以在该类之后才加载.
requires -- 被引用的类必须在该类之前加载.
*/
Ext.define('Gird', {
uses : ['Boy'],
getBoy : function(){
return Ext.create('Boy');
},
sleep : function(){
alert('sleep');
}
});
//对于uses属性,Boy类放在后面是可以的,不会报错
Ext.define('Boy', {
play : function(){
alert('play');
}
});
//对于requires属性,Boy类必须在Grid类之前加载,不然会报错
Ext.define('Boy', {
play : function(){
alert('play');
}
});
Ext.define('Gird', {
requires : ['Boy'],
getBoy : function(){
return Ext.create('Boy');
},
sleep : function(){
alert('sleep');
}
});
<!--*********************************************-->
<!--Cofig的使用,主要是简化构造器中的参数-->
/*Ext.define('Father', {
config:{
name:'LiLi',
age:0
},
constructor: function(config) {
//Ext.Msg.alert('message','My name is '+name+'i\'m'+age+'old');
this.initConfig(config);//除了这个,什么都不能加进来
},
eat:function(){
Ext.Msg.alert('I\'m hungry,I want to eat');
}
})
var aaron = Ext.create('Father', {
name:'huahua',
age:19
});
alert(aaron.getName());*/
<!--*********************************************-->
好了,这一节就到这吧,小海我也累了,明天继续把学到的东西与大家一起分享
转载于:https://blog.51cto.com/9197823/1641333
ext 浅谈类的实例相关推荐
- C++之浅谈类与对象
类与对象是C++语言的一个特点,类是对象的抽象,对象是类的实例. 类是抽象的需要占用内存,而对象时实例化的占用内存. 下面举个例子: class Time //定义类 {int hour; //定义数 ...
- 关于c语言的教学方法,浅谈C语言实例教学方法
摘要:分析C语言程序设计课程的特点:探讨如何在C语言程序设计实验教学中采用科学的实验教学手段,培养学生的学习兴趣,提高学生用C语言解决实际问题的综合能力:对C语言程序设计实验教学提出一些可行的探索方法 ...
- c语言教学中案例如何选取,创新教学方法实例 [浅谈C语言实例教学方法]
摘要:分析C语言程序设计课程的特点:探讨如何在C语言程序设计实验教学中采用科学的实验教学手段,培养学生的学习兴趣,提高学生用C语言解决实际问题的综合能力:对C语言程序设计实验教学提出一些可行的探索方法 ...
- python类中方法的执行顺序-浅谈Python的方法解析顺序(MRO)
方法解析顺序, Method Resolution Order 从一段代码开始 考虑下面的情况: class A(object): def foo(self): print('A.foo()') cl ...
- 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系
转自:http://www.cnblogs.com/zhangwei412827/archive/2012/12/14/2816263.html 浅谈javascript中原型(prototype). ...
- 浅谈UML类图中类之间的5种关系
什么是UML类图? 类图显示了一组类.接口.协作以及他们之间的关系.在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统.类加上他们之间的关系就构成了类图,类图中还可以包 ...
- 浅谈Java锁,与JUC的常用类,集合安全类,常用辅助类,读写锁,阻塞队列,线程池,ForkJoin,volatile,单例模式不安全,CAS,各种锁
浅谈JUC的常用类 JUC就是java.util.concurrent-包下的类 回顾多线程 Java默认有几个线程? 2 个 mian.GC Java 真的可以开启线程吗? 开不了,点击源码得知:本 ...
- 浅谈Spring IOC和DI及Spring工厂类
浅谈Spring IOC和DI及Spring的工厂类 文章目录 浅谈Spring IOC和DI及Spring的工厂类 一. IOC 1.什么是IOC 2.为什么使用IOC 传统开发模式的弊端 3. 使 ...
- python类构造方法缺省_浅谈python3 构造函数和析构函数
要点: 1.魔法方法,被__双下划线所包围 在适当的时候自动被调用 2.在创建一个对象的时候,一定会调用构造函数 3. del析构函数,在del a对象的时候,并一定会调用该析构函数 只有当该对象的引 ...
最新文章
- tcp当主动发出syn_(二)深入浅出TCPIP之再识TCP,理解TCP三次握手(上)
- android 开发 分辨率,Android手机应用开发为适应不同分辨率你应该知道的
- mc显示服务器生命值,[1.7-1.8]CombatIndicator — 全息显示攻击伤害的数值 让我的世界服务器更有游戏感...
- 菜单项onCreateOptionsMenu()和onOptionsItemSelected()的使用
- 树状数组 + 位运算 LA 4013 A Sequence of Numbers
- spring(5)构建 spring web 应用程序
- 备份数据库的expdp语句_银行业Oracle RAC数据库迁移经验分享
- 土木工程与计算机专业考研学校排名,2017年土木工程专业考研大学排名
- Linear Regression 和 Logistic Regression的不同(对比)
- 计算机焊板原理,计算机组成原理电路板焊接(74LS373和74LS138).doc
- 电脑退域后登陆不上_退域后加域不成功问题
- 第一次梦见这么多的狗
- 专访闪能申论凌青:学会申论应试五大力,轻松碾压对手
- Yolov5-v6.0模型详解
- 汇总阿里云GPU云服务器常见问题解答FAQ
- RCTF-2015 TankGame
- openai api 接口 列出模型信息
- 【视频教程】帝国CMS制作网站系列教程07
- 如何创业系列1:创业四要素
- Linux Basics
热门文章
- Google的“机器人情结”:两次合计36亿美元的人工智能收购
- 微信小程序之 SideBar(侧栏分类)
- 一个简单的JDBC通用工具
- zabbix运行脚本监控ggsci报错
- [USACO 4.2] 完美的牛栏
- 使用virt-install安装kvm虚拟机时需要的问题
- struts2:JSP页面及Action中获取HTTP参数(parameter)的几种方式
- python三酷猫_洛克王国三代酷猫登场 冰水酷猫解析
- [USACO13JAN] Cow Lineup (单调队列,尺取法)
- [k8s]metricbeat的kubernetes模块kube-metric模块