ExtJS 4 类的定义
类的定义与类方法的调用
样例代码
// Define new class 'Vehicle' under the 'Cookbook' namespace
Ext.define('Cookbook.Vehicle', {
// class configuration goes here
Manufacturer : 'Aston Martin',
Model : 'Vanquish',
getDetails : function() {
alert('I am an ' + this.Manufacturer + ' ' + this.Model);
}
}, function(){
Console.log('Cookbook.Vehicle class defined!');
});
var myVehicle = Ext.create('Cookbook.Vehicle');
alert(myVehicle.Manufacturer);
myVeicle.getDetails();
说明
- 第二行,使用Ext.define定义了一个Cookbook.Vehicle类,Cookbook是命名空间。
- 第四行、第五行,加入了两个属性。
- 第七行,加入了一个getDetails方法。
- 第十行,加入了callback方法,这个方法将在类定义之后执行。
样例代码2// Define new class 'Vehicle' under the 'Cookbook' namespace
Ext.define('Cokbook.Vehicle', {
config : {
// class configuration goes here
Manufacturer : 'Aston Martin',
Model : 'Vanquish',
},
constructor : function(config) {
// initialise our config object
this.initConfig(config);
},
getDetails : function() {
alert('I am an ' + this.Manufacturer + ' ' + this.Model);
}
}, function() {
Console.log('Cookbook.Vehicle class defined!');
});
// create a new instance of Vehicle class
var myVehicle = Ext.create('Cokbook.Vehicle');
// display its details
myVeicle.getDetails();
// update Vehicle details
vehicle.setManufacturer('Volkswagen');
vehicle.setModel('Golf');
// display its new details
vehicle.getDetails();
说明
- 如果在类的定义内,使用config标明配置属性,则Ext会自动生成属性相关的set、get、apply方法。
样例代码3Ext.define('Cookbook.Vehicle', {
Manufacturer : 'Aston Martin',
Model : 'Vanquish',
getManufacturer : function() {
return this.Manufacturer;
},
setManufacturer : function() {
this.Manufacturer = value;
},
resetManufacturer : function() {
this.setManufacturer('Aston Martin');
},
applyManufacturer : function(manufacturer) {
// perform some action to apply the value(e.g. update a DOM element
return manufacturer;
},
getModel : function() {
return this.Model;
},
setModel : function(value) {
this.Model = value;
},
resetModel : function() {
this.setModel('Vanquish');
},
applyModel : function(model) {
// perform some action to apply the value (e.g. update a DOM element)
return model;
},
getDetails : function() {
alert(' ... ')
}
});
总结
- 使用Ext.define()方法定义类主要有三个部分:类配置部分,类方法,定义回调方法。
- ExtJS中,定义、实例化一个类时,直接使用字符串的命名的形式。