定义一个类
使用Ext.define()来定义一个自己的类:
语法:
Ext.define((String) className, (Object) classMembers, (Optional Function) onClassCreatedCallback);
参数:
- className :完整的类名(以”.”符号分隔);
- classMembers :由键值对集合(JS对象字面量)构成的的对象;
- onClassCreatedCallback :函数回调。类的所有依赖项都准备就绪、类本身被完全创建后被调用。
-
Ext.define()在执行时会经历这样的过程:
- 侦察一下,必要的话,创建新的命名空间
- 扩展一个现有的类
- 验证是否已经定义了扩展类,如果不是,直到用于扩展的类可用才会创建新类。
- 返回Ext.Base对象。
注意:Ext.Base是使用Ext.define()创建的所有类的根。 Ext JS中的所有类也都继承自Ext.Base。
Ext.define('Student', { name : 'unnamed', getName : function(){ return "Student name is" + this.name; } }, function(){ alert('Student object created'); });
根据Ext.define的语法:
- 第一个参数Student是类名。
- 第二个参数是一个包含name和getName()的JS对象。
- 第三个参数(可选)是在创建Student类之后调用的回调函数。
-
创建类的对象
JavaScript允许我们使用关键字new来创建一个对象。 但是,Sencha建议,但凡使用Ext.define()方法创建的类,都使用Ext.create()方法来创建类的对象。
下面演示如何创建Student类的对象并调用其中的getName()方法,可以来这里尝试。
var studentObj = Ext.create('Student'); studentObj.getName();