Ext中statics()与self
var self = this;
var statics = self.statics();//所在类的静态成员(instance.statics():跟着所在类走,在哪个类中,就返回哪个类中的静态成员statics)
var clazz = self.self;//由类的实例获取类的引用(instance.self:跟着类的实例走,instance是哪个类的实例,instance.self就返回哪个类的引用)
Ext.define('org.pine.some.Dog',{ statics:{//静态成员 instanceCount:0,//实例 species:'dog'//物种 }, config:{ }, constructor:function(config){ var self = this; self.initConfig(config); var statics = self.statics();//所在类的静态成员(instance.statics():跟着所在类走,在哪个类中,就返回哪个类中的静态成员statics) console.info('statics.species:',statics.species); var clazz = self.self;//由类的实例获取类的引用(instance.self:跟着类的实例走,instance是哪个类的实例,instance.self就返回哪个类的引用) console.info('clazz.species:',clazz.species); statics.instanceCount++; self.callParent(arguments); }, /** * 克隆实例 */ clone:function(){ var self = this; var clazz = self.self;//由类的实例获取类的引用 var instance = new clazz();//通过类的引用产生类的实例 var statics = self.statics();//所在类的静态成员 instance['species']=statics.species;//添加属性 return instance; } });