2.2 配置对象与配置选项
在分析示例页面中的脚本代码之前,有必要首先对Sencha Touch框架中所使用的一些专用术语做一个必要的解释,如果读者对Sencha前身Ext JS比较熟悉的话,可以忽略这一部分内容。
首先来看什么是配置对象与配置选项。
过去,我们习惯于使用预先定义好的参数来调用函数。这表示当调用函数时,必须记住传入参数的顺序。代码如下:
- var test = new TestFuntion('LuLingNiu','38','240824399@qq.com');
这种方式可能会带来以下3个问题:
需要函数调用者记住且不能改变传入参数的顺序。
不描述参数代表什么含义。
在实现可选参数时缺少灵活性。
使用配置对象,可以具有更大程度的灵活性,传入参数的顺序不再重要,可以以任何顺序来设置传入参数,并且代码阅读者也可以对参数的含义一目了然。代码如下:
- var test = new TestFunction({
- Name: 'LuLingNiu',
- Age: '38',
- Email: '240824399@qq.com'
- });
这种方法允许函数的参数可以无限扩展,使用更少的传入参数或添加新的传入参数的处理变得更加简单。使用这种方法的另一个好处是,在第一次调用了函数之后,添加或减少传入参数对第一次的函数调用不产生任何影响。代码如下:
- //第一次调用
- var test = new TestFunction({
- Name: 'LuLingNiu'
- });
- //第二次调用
- var test = new TestFunction({
- Name: 'LuLingNiu',
- Age: '38',
- Email: '240824399@qq.com'
- });
如果你已经熟悉了CSS或JSON,你会注意到一个配置对象与它们非常类似。配置对象是一种构建对象的方法,其内部使用一系列配置选项来代替函数调用时参数的定义,而代码阅读者可以很容易地对其内容进行阅读。
举例来说,看如下代码:
- var panel = Ext.create('Ext.Panel', {
- //以下3行代码的作用为对面板使用配置选项
- fullscreen: true,
- id:'myPanel',
- style:'color:red',
- html: '一个简单的示例面板'
- });
这个示例代码中的配置对象初看起来有些复杂,但它是一种最快的配置组件的方法,因为每一个Sencha Touch的组件都使用一个配置对象,所以它是一个必须习惯使用的对象。
当使用配置对象时,有以下几点必须要记住:
在所有配置选项的最外层使用大括号,代表大括号内部为一个配置对象。
每个配置选项由选项名与选项值组成,选项名与选项值之间用冒号分隔,配置选项与配置选项之间用逗号分隔。
配置选项值可以为任何类型的数据,包括布尔类型、数组类型、函数类型,甚至可以包含另一个配置对象类型。
方括号代表一个数组,例如{name:['one','two','three']},一个数组中同样可以包含多个配置对象。
使用配置对象及其配置选项来配置组件的最大好处是:可以在需要的时候随意添加配置选项,而不像一个典型的函数调用那样必须固定参数的个数(除非使用可选参数),配置选项的顺序是不重要的,配置选项的数量也是可以变化的