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、非空白字符的便捷方法...
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
页面被初始化完毕后,在元素上绑定事件监听。事件名在
例如:
<body>
<div id="foo">
<a href="#">点击我</a>
</div>
<div id="bar">
<a href="#">鼠标移上来试试</a>
</div>
</body>
Ext.addBehaviors({
// 为id为foo的锚点元素增加onclick事件监听。
'#foo
// do something
alert("你点击了#foo a标签");
},
// 为多个元素增加mouseover事件监听,之间用逗号隔开
'#foo a, #bar
// 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的不同有所变化,例如主题、字体大小的影响
对页面元素生成唯一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
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、非空白字符的便捷方法...
- ExtJS系列学习(4)——Ext类
- ExtJs学习系列(4)--Ext.FormPanel
- ExtJs学习系列(4)--Ext.FormPanel
- ExtJs—— Ext类
- Extjs学习笔记——Ext自定义类
- ExtJS学习——Ext.Element
- 【ExtJs学习系列】Ext简介(一)
- ExtJs学习系列(5)--Ext.TabPanel
- ExtJs学习系列(3)--Ext.Window
- ExtJs学习系列(2)--Ext.Panel
- ExtJs学习系列(1)--Ext.MessageBox
- ExtJs学习系列(2)--Ext.Panel
- 4、ExtJs——Ext.window.Window
- extjs API 学习系列 --Ext.MessageBox 转载学习
- Extjs学习笔记——Ext.data.JsonStore使用说明
- Extjs学习笔记——Ext组件模型
- 【ExtJs学习系列】Ext的Menu组件(三)
- ExtJs源码分析与学习—工具类Ext.util.TextMetrics
- Java程序员的成长过程
- WIN7+IIS 7.5 伪静态配置
- 在网页中调用ActiveX
- 读书笔记_windows下的混合钩子(HOOK)_part 5_钩子的内存空间
- 详解compile & link
- ExtJS系列学习(4)——Ext类
- 素数打表解决质因子分解
- 如何在产品中采用开放架构 ?
- 五、SQL语句:存储过程
- int main(int agrc, char **argv)中argc和argv的含义
- Intel MKL 在vc2005配置方法
- 关于引用类型的默认参数
- 用正则表达式判断邮箱格式是否正确
- Swing中的并发-使用SwingWorker线程模式