ExtJS4.2学习 php版(四)

alternateClassName 

Ext.define('Developer', {
    alternateClassName: ['Coder', 'Hacker'],
    code: function(msg) {
        alert('Typing... ' + msg);
    }});
var joe = Ext.create('Developer');
joe.code('stackoverflow');
var rms = Ext.create('Hacker');
rms.code('hack hack');

该关键字和alias有什么区别呢 想不通

statics

Ext.define("My.Teacher",{
	
	config: {
	 	name : ""
	},
	
	statics : {
		say : function() {
			alert("static");
		}
	},
	
	constructor: function(cfg) {
	 	this.initConfig(cfg);
	},
	
	say : function() {
		var me = this;
		alert("My type is "+me.name);
		return this;			
	}
		
});
My.Teacher.say();

statics提供的静态属性子类不可继承  继承就要使用inheritableStatics

Ext.define("My.Teacher",{
	
	config: {
	 	name : ""
	},
	
	statics : {
		say : function() {
			alert("static");
		}
	},
	
	constructor: function(cfg) {
	 	this.initConfig(cfg);
	},
	
	say : function() {
		var me = this;
		alert("My type is "+me.name);
		return this;			
	}
		
});

Ext.define('My.MathTeacher', {
	 extend : "My.Teacher",
	 alias : ["MyTeacher","MathTeacher"],
     config: {
		 type : "Math"
     },
     constructor: function(cfg) {
         this.initConfig(cfg);
     }
});
My.MathTeacher.say();

mixins 多继承

Ext.define("My.Teacher",{
	
	config: {
	 	name : ""
	},
	
	statics : {
		say : function() {
			alert("static");
		}
	},
	
	constructor: function(cfg) {
	 	this.initConfig(cfg);
	},
	
	say : function() {
		var me = this;
		alert("My type is "+me.name);
		return this;			
	}
		
});

Ext.define("canTeachMath",{
	teachMath : function() {
		alert("I can tech Math");	
	}
})

Ext.define("My.MathTeacher", {
	mixins : ["My.Teacher","canTeachMath"],
	alias : ["MyTeacher","MathTeacher"],
    config: {
		type : "Math"
    },
    constructor: function(cfg) {
        this.initConfig(cfg);
    }
});
var adn = Ext.create("My.MathTeacher",{
		name : "asds",
		type : "sads"
	});
adn.teachMath();

requires uses 

对于uses属性,引用类放在后面是可以的,不会报错   

对于requires属性,引用类必须在使用类之前加载,不然会报错   

Ext.define("Gird",{
	
	uses : ["boy"],
	
	config: {
	 	name : ""
	},
	
	constructor: function(cfg) {
	 	this.initConfig(cfg);
	},
	
	say : function() {
		var me = this;
		alert("My type is "+me.name);
		return this;			
	}
		
});

Ext.define("Boy",{
	
	config: {
	},
	
	constructor: function(cfg) {
	 	this.initConfig(cfg);
	},
	
	play : function() {
		alert("I can play");
		return this;			
	}
		
});

singleton 单例化

Ext.define('Logger', {
    singleton: true,
    log: function(msg) {
        console.log(msg);
}});
Logger.log('Hello');


你可能感兴趣的:(Class,ExtJs)