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 });

 

posted @ 2019-07-19 15:44  松松敲代码  阅读(263)  评论(0编辑  收藏  举报