-
传统set get
采用传统的set,get访问对的形式对属性进行赋值和读取,代码如下
//加载成功后执行 Ext.onReady(function(){ //声明类 Ext.define('person',{ name:'',//默认为'' setName:function(value){//设置name方法 this.name=value; }, getName:function(){//获得get方法 return this.name; } }); var per=Ext.create('person');//创建对象 per.setName('name1');//设置name='name1' Ext.Msg.alert('姓名',per.getName());//获得name值并且以对话框形式输出 })
效果如图:
-
set;get简便写法
Ext提供一种更便捷的写法,直接把需要创建set;get访问对的属性放入config:{}大括号中,多个参数用逗号分隔开。感觉有点像C#的{set;get},但是在写法上更便捷,下面对上面例子进行简化,代码如下
//加载成功后执行 Ext.onReady(function(){ //声明类 Ext.define('person',{ config:{//自定创建set get方法 name:'' } }); var per=Ext.create('person');//创建对象 per.setName('name1');//设置name='name1' Ext.Msg.alert('姓名',per.getName());//获得name值并且以对话框形式输出 })
效果和传统set;get的例子效果一样
-
构造器传递
写法和java或者c#的构造器传值很像,而且和java一样构造器方法是最先执行方法,下面附上代码
//加载成功后执行 Ext.onReady(function(){ //声明类 Ext.define('person',{ constructor:function(name){ Ext.Msg.alert('传递参数','name:'+name) } }); var per=new person('nameParams'); })
效果如图:
-
Ext.create传递
至于为什么要采用Ext.create方式创建对象,是因为ext不鼓励使用new方法创建对象,今后都会采用Ext.create的方式来创建对象,下面是Ext.create的参数传递方法
//加载成功后执行 Ext.onReady(function(){ //声明类 Ext.define('person',{ constructor:function(name){ Ext.Msg.alert('传递参数','name:'+name) } }); //通过Ext.create创建对象 var per=Ext.create('person','nameParams'); })
效果和采用new的方式一样:
-
组件间传递参数
虽然我们还没有讲到组件,但是我们还是了解一下,因为这是我们今后使用最多的参数传递方法
//加载成功后执行 Ext.onReady(function(){ //声明自定义myPanel类 Ext.define('myPanel',{ extend:'Ext.panel.Panel',//继承panel initComponent:function(){//初始化组件模板方法 Ext.apply(this,{ //apply表示替换,第一个参数表示被替换对象,第二个表示替换后对象 title:this.title, //panel标题 height:this.height, //panel高度 width:this.width, //panel宽度 renderTo:Ext.getBody()//输出到body中 }); //调用父类方法 this.callParent(); } }) //第一个对象表示创建对象名,第二个表示要传递参数 Ext.create('myPanel',{title:'MyTitle',height:100,width:80}); })
效果如图: