我无法理解在ExtJS 4中使用config属性。文档说每当我们将属性保存在config中时,ExtJS将为属性生成相应的getter和setter。此外,如果我们想在设置属性值之前添加一些逻辑,我们可以使用apply方法。但事情是,尽管在配置下添加了属性,但我们可以在不使用getter和setter的情况下设置它们。因此配置无助于封装。此外,如果我们想在设置属性之前添加一些逻辑,我们可以有一个自定义方法,为什么只使用apply方法。这是一个示例代码..
Ext.define('MyApp.data.invoice',{
config:{
client: '',
tax: 0.83,
subtotal: 0,
total: 0
},
constructor: function(config){
this.initConfig(config);
},
applySubtotal: function(value){
this.setTotal(value + value*this.getTax());
return value;
}
});
这是使用这个类
Ext.onReady(function(){
var invoice = Ext.create('MyApp.data.invoice',{
client: 'Tuxtuc Inc',
subtotal: 100,
total: 80.3
});
console.log(invoice.client); //Tuxtuc Inc
console.log(invoice.getClient); //Tuxtuc
invoice.setTax(0.16);
console.log(invoice.getTax()); //0.16
invoice.subtotal = 1000;
console.log(invoice.subtotal); // 1000
});