ExtJS系列学习(4)——Ext类

来源:互联网 发布:淘宝打折商品网址 编辑:程序博客网 时间:2024/06/04 08:55
  Ext类是ExtJs的核心基础,它即代表着ExtJs框架的命名空间,又是提供基础功能的静态类。该类主要提供了继承、兼容等功能。另外还提供了一组工具函数,所以学习ExtJs首先需要攻破就是Ext类。
属性:
  isReady: 
页面是否完全被初始化,并可供使用。
 
  isIE:
 是否是IE浏览器

 其它属性略...
 
方法:
1.apply(Object obj, Object config, Object default): Object
   提供对象继承的功能,其中第三个参数可省略,表示复制config对象的所有属性到obj,如果提供了第三个参数,则先
把default对象的属性赋值到obj中。
   采用此方法 会存在父对象覆盖子对象中的同名方法或属性。
 例如:
var obj1 = {
    name: "飞儿",
    msg: function() {
        alert("我的名字叫" + this.name);
    }
}

var obj2 = {
    name: "果儿",
    age: 18,
    print: function() {
        alert("我的名字叫 " + this.name + ",今年" + this.age + "岁了");
    }
}

Ext.apply(obj1, obj2); //把对象obj2的属性和方法赋值到obj1,同名的则覆盖。
obj1.print(); //输出  我的名字叫 果儿,今年18岁了
 
2. applyIf(Object obj, Object config):Object
   此方法主要解决apply方法的同名冲突问题,它复制所有config的属性至obj,如果obj已有该属性,则不复制
例如:
  Ext.applyIf(obj1, obj2); //把对象obj2的属性和方法赋值到obj1,同名的则不复制。

  obj1.print(); //输出  我的名字叫 飞儿,今年18岁了

3.copyTo( Object dest , Object source , Array/String names ) : Object 
    复制源对象身上指定的属性到目标对象。可以是属性名称构成的数组,也可以是属性名称构成的字符串,用逗号、分号隔开。
例如:
   var dest = {};   //目标对象
   var source = {   //源对象
    name: "飞儿",
    msg: function() {
        alert("我的名字叫" + this.name);
    }
    }

Ext.copyTo(dest, source, "name,msg");//复制源对象(source)的name属性和msg方法到目标对象(dest)
dest.msg();  //输出  我的名字叫 飞儿


4. addBehaviors( Object obj ) : void 
   页面被初始化完毕后,在元素上绑定事件监听。事件名在
[email='@']%27@%27[/email]符号后。
例如:
  <body>
  <div id="foo">
       <a href="#">点击我</a>
  </div>
  <div id="bar">
     <a href="#">鼠标移上来试试</a>
  </div>
  </body>

Ext.addBehaviors({
    // 为id为foo的锚点元素增加onclick事件监听。
    '#foo 
[email=a@click']a@click%27[/email]: function(e, t) {
        // do something
        alert("你点击了#foo a标签");
    },

    // 为多个元素增加mouseover事件监听,之间用逗号隔开
    '#foo a, #bar 
[email=a@mouseover']a@mouseover%27[/email]: function() {
       // do something
        alert("鼠标进入了我的上面");
    }
});

 
5.destroy( Mixed arg1 , [Mixed arg2] , Mixed etc ) : void 
尝试去移除每个传入的对象,包括DOM,事件侦听者,并呼叫他们的destroy方法(如果存在)。

 
6.destroyMembers( Object o , Mixed arg1 , Mixed etc ) : void 
删除对象的指定属性(支持传入多参,同时删除多个属性)。

 
7.each( Array/NodeList/Mixed array , Function fn , Object scope ) : void 
    迭代一个数组,数组中每个成员都将调用一次所传函数,直到函数返回false才停止执行。如果传递的数组并非一个真正的数组,所传递的函数只调用它一次。
(译注:如果不是数组,就将该“数组”放入一个[]中,而且会返回一个隐藏的int参数,代表为该array调用function的次数。) 
 var arr =[1,2,3,4,5];
var print =function(i){
      alert(i);
}
Ext.each(arr,print,{}); //连续输出1,2,3,4,5


8.escapeRe( String str ) : String 
   避免传递的字符串参数被正则表达式读取。

 
9.extend( Function subclass , Function superclass , [Object overrides] ) : Function 
OO的类继承,并由传递的值决定是否覆盖原对象的属性。返回的类对象中也增加了“override()”函数,用于覆盖实例的成员。. 
例如:
//定义父类
var superclass = function() {
    alert("父类的构造函数被调用");
    this.name = "果儿";
    this.age = 20;
    this.print = function() {
        alert("我的名字叫 " + this.name + " ,我今年 " + this.age + "岁了。");
    }
}

//定义子类
var subclass = function() {
    this.superclass().constructor(arguments); //调用父类的构造函数初始化父类
    this.name = "飞儿";
    this.age = 18;
    this.print = function() {
        alert("我的名字叫 " + this.name + " ,我今年 " + this.age + "岁了。");
    }
    this.getSuperPropertyName = function() {
        alert(this.superclass().name);
    }
    this.getSuperPropertyAge = function() {
        alert(this.superclass().age);
    }
    this.getSuperMemberPrint = function() {
        this.superclass().print();
    }
}

//子类继承父类
Ext.extend(subclass, superclass); 
//实例化子类的一个对象
var myclass = new subclass();
alert(myclass.name);
alert(myclass.age);
myclass.print();
myclass.getSuperPropertyName();
myclass.getSuperPropertyAge();
myclass.getSuperMemberPrint();


10. getBody( ) : Ext.Element 
返回当前document.body的Ext.Element类型。

 
11. getCmp( String id ) : Ext.Component 
Ext.ComponentMgrget的简写方式。 

 
12.getDoc( ) : Ext.Element 
返回当前HTML文档的Ext.Element类型

 
13.getDom( Mixed el ) : HTMLElement 
返回dom对象,参数可以是string(id),dom node,或Ext.Element。

 
14.getScrollBarWidth( [Boolean force] ) : Number 
计算浏览器滚动体实际的物理宽度。该值根据OS的不同有所变化,例如主题、字体大小的影响

 
15。  id( [Mixed el] , [String prefix] ) : String 
对页面元素生成唯一id,如果该元素已存在id,则不会再生成 

 
16.isArray( Object v ) : Boolean 
返回true表名送入的对象是JavaScript的array类型对象

 
17.isDate( Object v ) : Boolean 
返回true表名送入的对象是JavaScript的date类型对象,否则为false

 
18.isEmpty( Mixed value , [Boolean allowBlank] ) : Boolean 
如果传入的值是null、undefined或空字符串,则返回true

 
19.namespace( String namespace1 , String namespace2 , String etc ) : void 
为变量创建其命名空间,这样类就有了“安身之所”,不是飘荡四处的“全局变量”。

 
20.num( Mixed value , Number defaultValue ) : Number 
验证第一个参数是否是数字,如果不是数字,则用第二参数的值代替,第二个参数必须是Number类型,返回Number类型

 
21.override( Object origclass , Object overrides ) : void  
 在类上添加overrides指定的方法(多个方法),同名则覆盖,注意只是覆盖类的prototype原型的方法
 var subclass = function() {
         this.name = "果儿";
     }
     subclass.prototype.getName = function() { 
        alert(this.name);
    }
    Ext.override(subclass, {
        age : 19,
        getName: function() {
            alert("重写的方法");
        }
    })
     var myClass = new subclass();
      alert(myClass.age); // 19
     myClass.getName(); //重写的方法

 
22.removeNode( HTMLElement node ) : void 
移除document的DOM节点。如果是body节点的话会被忽略

 
23.type( Mixed object ) : String 
返回参数类型的详细信息。如果送入的对象是null或undefined那么返回false,
string: 如果传入的是字符串。
number: 如果输入的是数字。 
boolean: 如果传入的是布尔值。
date: 如果传入的是日期。
function: 如果传入的是函数。
object: 如果传入的是对象。
array: 如果传入的是数组。
regexp: 如果传入的是正则表达式。
element: 如果传入的是DOM Element。
nodelist: 如果传入的是DOM NodeList。
textnode: 如果传入的是DOM Text,且非空或空格。

 
24、urlDecode( String string , [Boolean overwrite] ) : Object 
把一个已经encoded的URL字符串转换为对象。如Ext.urlDecode("foo=1&bar=2"); 就是{foo: "1", bar: "2"};
 Ext.urlDecode("foo=1&bar=2&bar=3&bar=4", false);就是{foo: "1", bar: ["2", "3", "4"]}。
  
25、urlEncode( Object o ) : String 
把一个对象转换为一串以编码的URL字符。例如Ext.urlEncode({foo: 1, bar: 2});变为"foo=1&bar=2"。
可选地,如果遇到属性的类型是数组的话,那么该属性对应的key就是每个数组元素的key,逐一进行“结对的”编码。

 
26. value( Mixed value , Mixed defaultValue , [Boolean allowBlank] ) : Mixed 
验证值是否非空、非null、非undefined、非空白字符的便捷方法...  


原创粉丝点击