首页 > 代码库 > ExtJS学习-------Ext.define的别名和备用名,两种定义静态方法的方法,混入属性和其他属性

ExtJS学习-------Ext.define的别名和备用名,两种定义静态方法的方法,混入属性和其他属性

(1)Ext.define起别名和备用名

Ext.onReady(function(){
	
	Ext.define('User',{
		config:{
			name:'张三',
			age:23
		},
		//使用别名
		alias:'alias_user',
		//使用备用名
		alternateClassName:'alternateClassName_user',
		constructor:function(config){//构造器
			var me=this;
			me.initConfig(config);
		}
	});
	//用三个名字进行定义
	var u1=Ext.create('User');
	var u2=Ext.create('alias_user');
	var u3=Ext.create('alternateClassName_user');
	alert(u1.getName()+'=='+u1.getAge());
	alert(u2.getName()+'=='+u1.getAge());
	alert(u3.getName()+'=='+u1.getAge());
});

结果:

        

(2)定义静态方法(两种方法)


Ext.onReady(function(){
	Ext.define('Person',{
		config:{
			name:'张三'
		},
		statics:{//静态的方法或属性
			static_id:'我是Person的id,不能被子类所继承!!'
		},
		inheritableStatics:{	//静态的方法或属性
			inheritableStatics_id:'我是Person的id,我可以被子类继承!!'
		},
		constructor:function(config){
			var me = this;
			me.initConfig(config);
		}
	});
	
	Ext.define('User',{
		extend:'Person',
		config:{
			age:23
		}
	});
	//对继承过来的静态属性进行测试:实例对象是无法使用静态属性或者方法的
	//用类名去使用静态属性或者方法
	alert(User.static_id);
	alert(User.inheritableStatics_id);
	alert(Person.static_id);
});

结果:

        

(3)混入属性,相当于多继承:

Ext.onReady(function(){
	Ext.define('Boy',{
		boySay:function(){
			alert('I am a boy...');
		}
	});
	Ext.define('Girl',{
		girlSay:function(){
			alert('I am a girl...');
		}
	});
	Ext.define('Person',{
		mixins:{//混入属性,相当于多继承
			boy:"Boy",
			girl:"Girl"
		}
	});
	var p=Ext.create('Person');
	p.boySay();
	p.girlSay();
});

结果:

     

(4)Ext.define的其他属性: