EXTJS 学习(一) :类和对象的概念
1. 入门Demo
1.1 在开发工具中引入相关的ext的js源码文件,比如使用idea开发,则web目录下引入关键js文件
以下是必须要有的,其他的看情况选择.,js源码文件可以上ext官网下载
ext-all.css , ext-all.js ,并且如果有用到 ext-base.js,必须放到 ext-all.js
前面 ,因为加载时是先加载 ext-base.js,后加载ext-all.js
1.2 Extjs 版HelloWorld(这里使用的是ext5)
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#在idea的web工程的web目录下创建首页index.jsp或者index.html,例如,注意文件路径一定要引对 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>MyExt</title> <link rel="stylesheet" type="text/css" href="ext/css/ext-theme-crisp-all.css"> <script type="text/javascript" src="ext/js/ext-all.js"></script> <script type="text/javascript" src="ext/js/ext-locale-zh_CN.js"></script> <script type="text/javascript" src="app/appjs/app.js"></script> </head> <body> </body> </html> #最后引入的是我们自己的应用app.js,在app.js中写入以下信息,ext版本的 HelloWorld就写好了 Ext.onReady(function(){ Ext.MessageBox.alert("信息","Hello world"); });
2 .EXTJS 中的一些基本概念
2.1 EXTJS中类的定义
复制代码
1
2
3
4
5
6
7
8#定义类的语法 Ext.define(class name, class members/properties, callback function); *常用语法* 还可以用Ext.apply(...)定义 #类名是根据应用程序结构的类名 . 1.class name(类名):appName.folderName.ClassName (程序名.类存放目录.类名) 例:studentApp.view.StudentView。 2.class members/properties(成员/属性):
2.1.1 Ext.apply()方法 和Ext.define()方法
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25//1.定义命名空间 并创建一个类 Ext.namespace("Ext.myspace"); Ext.myspace.Person = Ext.emptyFn; Ext.apply(Ext.myspace.Person.prototype,{//2.使用apply()方法 将指定属性的值赋给Person类的原型属性(prototype) name:'王五', age:18, sex:'男' }); Ext.define('Ext.myspace.Person',{//2.1 使用define() 创建类 name:'王五', age:18, sex:'男' }); //3.创建实例,和给实例的属性重新赋值 Ext.onReady(function(){ var _person = new Ext.myspace.Person();//创建对象 alert(_person.name); _person.name = '李四'; //给属性重新赋值 alert(_person.name); alert(_person.age); //判断没重新赋值的属性是否会有变化 });
2.1.2 使用Ext.apply()方法 和Ext.define()方法 创建类的区别
相同 | 不同 | |
---|---|---|
作用 | 给一个类的属性赋值,或增加属性 | / |
参数 | apply()第一个参数是 类名.prototype | define() 第一个参数 是类名并且是字符串类型的 |
2.2 EXT中类 的构造方法
2.2.1 构造函数的不同写法
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18Ext.fine('Ext.myspace.Person',{ name: '', age: 0, sex: '', say:function(){ alert('good boy') }, /* constructor: function (config) {// 构造函数第一种写法 Ext.apply(this, config) } */ constructor: function (config) {// 构造函数第二种写法 var me = this; me.initConfig(config); } });
2.3 EXTJS 中成员变量的声明
2.3.1 EXTJS中 定义类时成员变量的两种写法
2.3.1.1 成员变量的第一种写法
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Ext.define('Ext.myspace.Person',{ config: { //成员变量的第一种写法 name: '王五', age:18 }, constructor:function (config) {//在初始化类的时候构造函数无法初始化成员 var me = this; me.initConfig(config) } }); var p = new Ext.myspace.Person(); alert(p.name) -->undfind alert(p.age)-->undfind alert(p.getName())-->王五 alert(p.getAge())-->18 p.setName('李四') p.setAge(12) alert(p.getName())-->李四 alert(p.getAge())-->12
2.3.1.2 成员变量的第二种写法
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17Ext.define('Ext.myspace.Person',{ name: '王五', //成员变量的第二种写法,省略config constructor:function (config) {//在初始化类的时候构造函数可以初始化成员 var me = this; me.initConfig(config) } }); var p = new Ext.myspace.Person(); alert(p.name) -->王五 alert(p.age)-->18 p.setName('李四')--> is not a function p.setAge(12)--> is not a function alert(p.getName())--> is not a function alert(p.getAge())--> is not a function
2.3.1.3 成员变量不同写法的区别
有config{} | 没有config{} | |
---|---|---|
类对应的对象是否有setXxx() ,getXxxv() 方法 | 有 | 无 |
能否通过对象名点属性名取值(例如:p.name) | 不能 | 能 |
第一种是常用的
2.4 EXTJS 中类的自定义成员方法
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18config: { name: '王五', age: 18 }, sing:function(){ alert('sing a song') }, constructor:function (config) { var me = this; me.initConfig(config) } }); var p = new Ext.myspace.Person(); alert(p.getName()) -->王五 alert(p.getAge()) -->18 p.sing() --> sing a song
2.5 EXTJS 中对象的创建
2.5.1 创建对象的不同方法
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29//1.有一个类如下 Ext.define('Ext.myspace.Person',{ config: { name: '王五', age:18 }, constructor:function (config) { var me = this; me.initConfig(config) } }); //2创建他的对象 //2.1 new 创建 var p = new Ext.myspace.Person(); alert(p.getName()) -->王五 alert(p.getAge()) -->18 //2.2 Ext.creat() 创建 var p = Ext.create('Ext.myspace.Person',{ name:'李四', age:12 }); alert(p.getName()) --> 李四 alert(p.getAge()) --> 12
EXTJS 推荐使用 Ext.create()
2.6 EXTJS 类的扩展(继承)
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47//父类 Ext.define('Ext.myspace.Person',{ config: { name: '王五', age:18 }, constructor:function (config) { var me = this; me.initConfig(config) } }); //1.写一个Student类继承Person类,不做任何扩展功能 Ext.define('Ext.myspance.Student', { extend: 'Ext.myspace.Person' }); alert(s.getName()) --> 王五 alert(s.getAge()) -->18 #出现这个结果说明使用 extend 继承父类,会自动调用父类的构造函数 //2.写一个Student类继承Person类,新增自己独有的属性和方法 Ext.define('Ext.myspance.Student', { extend: 'Ext.myspace.Person', config:{ sex:'man', job:'learn' }, sing:function () { alert('sing a song') }, constructor: function (config) { var me = this; me.initConfig(config) } }); alert(s.getName()) -->王五 alert(s.getAge()) -->18 //下面是子类的属性和方法 alert(s.getSex()) --> man alert(s.getJob()) --> learn s.sing() --> sing a song #出现这个结果说明继承父类后 子类还可以有自己的构造函数不会影响父类的加载 //3.如果子类重写了父类的属性 和方法 父类对应的属性和方法会被覆盖(自行验证)
以上仅是个人认知
最后
以上就是爱撒娇硬币最近收集整理的关于EXT 学习(一)EXTJS 学习(一) :类和对象的概念的全部内容,更多相关EXT内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复