ExtJS使用命名空间 和 本身构建类的方法 写出了许多能够重用 高效的方法 因此使用ExtJS 类必须了解。
架构
ExtJS4对新的类系统进行了大量的比较完全的重构,新的架构创建在写在Extjs4库中每个单独的类。
异步
ExtJS命名规范
函数
类this
类名最好只包含字母,在多数状况下,数字是不鼓励使用的,除非非要用不可,也不要使用下划线,-以及其它非字母字符spa
MyCompany.useful_util.Debug_Toolbar 不鼓励这样命名 MyCompany.util.Base64 可接受的命名
类名最好包组织,在适当的名字空间经过使用.来访问对象属性,至少,类名应该有一个顶层的包。例如code
MyCompany.data.CoolProxy MyCompany.Application
ExtJS不容许用Ext作顶部包名 首部和末尾要使用驼峰法 其余要使用小写
orm
MyCompany.form.action.AutoLoad对象
类名直接映射到存储该类的文件路径,所以,每一个文件只能有一个类,如回调函数
Ext.util.Observable is stored in path/to/src/Ext/util/Observable.js Ext.form.action.Submit is stored in path/to/src/Ext/form/action/Submit.js MyCompany.chart.axis.Numeric is stored in path/to/src/MyCompany/chart/axis/Numeric.js
属性命名it
类属性命名和上面方法以及变量同样,除了当属性是静态常量的时候。
当属性是静态常量时,字母应该大写。
Ext.MessageBox.YES = "Yes" Ext.MessageBox.NO = "No" MyCompany.alien.Math.PI = "4.13"
ExtJS新的定义类的方式
Ext.define(className, members, onClassCreated);
className:类名
members:这是一个对象,它表示一个以键值对形式表示的类成员集合。
onClassCreated:这是一个可定制的回调函数,当这个类所依赖的类都准备完毕时便会调用这个回调函数,而且类自己将会彻底建立。因为有这个类建立新异步属性,这个回调在不少状况都会颇有用。如下是一个例子
Ext.define('My.sample.Person', { name: 'Unknown', constructor: function(name) { if (name) { this.name = name; } }, eat: function(foodType) { alert(this.name + " is eating: " + foodType); } }); var aaron = Ext.create('My.sample.Person', 'Aaron'); aaron.eat("Salad"); // alert("Aaron is eating: Salad");
上面用Ext.cteate()方法建立了类My.sample.Person的实例。可使用new关键字(new My.sample.Person())。可是习惯是老是使用Ext.create由于它在动态加载上有优点。有关动态加载在Extjs-start中有提到。