ExtJS4.2学习 php版(二)

ExtJS使用命名空间 和 自己构建类的方法 写出了许多可以重用 高效的方法 所以使用ExtJS 类必须了解。

ExtJS4对新的类系统进行了大量的比较彻底的重构,新的架构建立在写在Extjs4库中每一个单独的类。


ExtJS命名规范

  • 类名最好只包含字母,在多数情况下,数字是不鼓励使用的,除非非要用不可,也不要使用下划线,-以及其它非字母字符

MyCompany.useful_util.Debug_Toolbar 不鼓励这样命名    
MyCompany.util.Base64 可接受的命名

  • 类名最好包组织,在适当的名字空间通过使用.来访问对象属性,至少,类名应该有一个顶层的包。例如

MyCompany.data.CoolProxy    
MyCompany.Application

  • ExtJS不允许用Ext做顶部包名 首部和末尾要使用驼峰法 其他要使用小写

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

  • 属性命名

       类属性命名和上面方法以及变量一样,除了当属性是静态常量的时候。

       当属性是静态常量时,字母应该大写。

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中有提到。

你可能感兴趣的:(Class,ExtJs)