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;      
    }
});
 
原文地址:https://www.cnblogs.com/web-record/p/12060330.html