Ext中statics()与self
Ext中statics()与self:
var self = this;
var statics = self.statics();//所在类的静态成员(instance.statics():跟着所在类走,在哪个类中,就返回哪个类中的静态成员statics)
var clazz = self.self;//由类的实例获取类的引用(instance.self:跟着类的实例走,instance是哪个类的实例,instance.self就返回哪个类的引用)
1 Ext.define('org.pine.some.Dog',{ 2 statics:{//静态成员 3 instanceCount:0,//实例 4 species:'dog'//物种 5 }, 6 config:{ 7 8 }, 9 constructor:function(config){ 10 var self = this; 11 self.initConfig(config); 12 13 var statics = self.statics();//所在类的静态成员(instance.statics():跟着所在类走,在哪个类中,就返回哪个类中的静态成员statics) 14 console.info('statics.species:',statics.species); 15 16 var clazz = self.self;//由类的实例获取类的引用(instance.self:跟着类的实例走,instance是哪个类的实例,instance.self就返回哪个类的引用) 17 console.info('clazz.species:',clazz.species); 18 19 statics.instanceCount++; 20 self.callParent(arguments); 21 }, 22 /** 23 * 克隆实例 24 */ 25 clone:function(){ 26 var self = this; 27 var clazz = self.self;//由类的实例获取类的引用 28 var instance = new clazz();//通过类的引用产生类的实例 29 30 var statics = self.statics();//所在类的静态成员 31 instance['species']=statics.species;//添加属性 32 return instance; 33 } 34 });