Ext中类的定义

在ExtJS中定义类的方式

Ext.define

在Ext中定义一个类: Ext.define(className, properties, callback)

Ext.define('Person',{
		// 添加配置项 config,配置当前类属性,会自动加上get和set方法
		config:{
			name:'zs',
			age:25
		},
		// 自己定义的方法
		sayHello:function(){
			alert("自定义的方法");
		},
		// 给当前类添加一个构造器
		constructor:function(config){
			for(var attr in config){
				console.log(attr + " : " + config[attr]);				
			}
			// 初始化传递的配置信息
			this.initConfig(config);
		}
	});
Ext.create
// 使用定义的类  推荐方式
	// 定义一个对象
	var person = Ext.create('Person',{
		name:'z6',
		age:28
	});
	alert(person.getAge());
	alert(person.getName());
	person.sayHello();

在ExtJS中使用继承

	Ext.define("Person",{
		config:{
			age:23
		},
		constructor:function(config){
			var cur = this;
			cur.initConfig(config);
		}
	});
	
	// sub class
	Ext.define("Boy",{
		// 继承Person
		extend:'Person',
		config:{
			name:'zs',
			sex:'男'
		}
	});
//	var boy = Ext.create('Boy');
//	alert(boy.getName());
//	alert(boy.getAge());
//	alert(boy.getSex());

别名和备用名

	Ext.define("User",{
		config:{
			name:'zs',
			age:23
		},
		// 别名
//		alias:'UUU',
		alternateClassName:'DDD',// ClassManager
		constructor:function(config){
			var me = this;
			me.initConfig(config);
		}
	});
	
	
//	var u = Ext.create('User',{});
//	alert(u.getName());
//	var u = Ext.create('UUU',{});
//	alert(u.getAge());
	var u = Ext.create('DDD',{});
	alert(u.getAge());

静态属性

	Ext.define('Person',{
		config:{
			name:'父类'
		},
		statics:{
			// 静态属性或方法,不可以被子类继承
			static_id:'static_id静态属性'
		},
		inheritableStatics:{
			// 静态属性或方法,可以被子类继承
			inheritableStatics_id:'inheritableStatics_id静态属性'
		},
		constructor:function(config){
			var me = this;
			me.initConfig(config);
		}
	});
	
	
	// 静态属性或方法,直接使用类名调用
//	alert(Person.static_id);
//	alert(Person.inheritableStatics_id);
	
	// subClass
	Ext.define('User',{
		extend:'Person',
		config:{
			age:20
		}
	});
	
//	alert(User.static_id);// undefined
	alert(User.inheritableStatics_id);

混入 实现多继承

	Ext.define("Sing",{
		canSing:function(){
			alert("canSing");	
		}
	});
	
	Ext.define("Say",{
		canSay:function(){
			alert("canSay");
		}
	});

	// mixins  在User类中混入Sing和Say两个类
	Ext.define("User",{
		mixins:{
			sing:"Sing",
			say:"Say"
		}
	});

	var u = Ext.create("User");
	u.canSay();
	u.canSing();

requires uses 及 singleton

Ext.define('MyComponent', {
		// requires加载需要的类的时机:当前类初始化之前被加载
		requires:['Ext.window.Window', 'Ext.button.Button'],
		// uses加载需要的类的时机:当前类初始化之后被加载
		uses:['Ext.form.Panel', 'Ext.grid.Panel'],
		singleton:true //当前类被当作一个单例对象
	});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值