Ext.apply:
Ext.apply: Ext.apply = function(C, D, B){
if (B) {
Ext.apply(C, B);
}
if (C && D && typeof D == "object") {
for (var A in D) {
C[A] = D[A];
}
}
return C;
};
该段代码的作用是实现对象的继承。 参数意义: 如果只传入两个参数,则将C继承D的所有方法属性,如果定义了B则每次都先继承B的方法属性然后再继承D的方法属性,即B是默认继承对象。
参考代码:
<
script
type="text/javascript" language="JavaScript">var b = {
b1: "dd",
b2: "ff"
};
var a = Ext.apply(this, b);
for (var i in a) {
if ((i == "b1") || (i == "b2"))
alert(i + ":" + a[i]);
}
</script>
Ext.applyIf
:参数传入同上面的C,D顺序,如果D中的属性在C中已经定义,则不覆盖值,否则才新增属性
参考代码:
<script type="text/javascript" language="JavaScript">
var b = {
b1: "dd",
b2: "ff"
};
var c = {
b1: "ff",
b3: "b3"
};
var a = Ext.apply(this, b);
a = Ext.applyIf(this, c);
for (var i in a) {
if ((i == "b1") || (i == "b2") || (i == "b3"))
alert(i + ":" + a[i]);
}
</script>
Ext.addBehaviors
:
在文档完成是通过选择器给相应的element增加时间监听器。
示例代码:
// add a listener for click on all anchors in element with id foo
Ext.addBehaviors({
'#foo a@click': function(e, t)
{ // do something }, //id=foo
的 a标签下的cliak事件
// add the same listener to multiple selectors (separated by comma BEFORE the @)
'#foo a, #bar span.some-class@mouseover' : function(){
// do something
} }); //
多个事件
Ext.id:
源码中定义如下:
// el
为混合类型,即传入id或dom对象,prefix为前缀,若为空则使用ext-gen做id的
id : function(el, prefix){
prefix = prefix || "ext-gen"; //
默 认前缀
el = Ext.getDom(el);
var id = prefix + (++idSeed);
return el ? (el.id ? el.id : (el.id = id)) : id;
}
Ext.extend:
详见本blog关于Extend的文章
7
、
Ext
.namespace( String namespace1, String namespace2, String etc ) : void
创建命名空间:
如
Ext
.namespace("Company","MyNS.mydata","Data.format.string")
然后可以创建如
MyNS.mydata.doit=function(){…}
的接口
注:命名空间的简易调用:
Ext
.ns()
,在
Ext
Api
中未给出此用法。
8
、
Ext
.urlEncode( Object o ) : String
将一个
json
对象转换称
url
参数串,支持通过数组为一个参数设定多个值。
如将
{a:1,b:2,c:[1,3,5,7]}
转换为
a=1&b=2&c=1&c=3&c=5&c=7 9
、
Ext
.urlDecode( String string, [Boolean overwrite] ) : Object
将
url
参数串转换为
json
对象,
overwrite
如果为
true
,则后面的同名参数值覆盖前面的同名参数值(默认为
false
即不覆盖而以数组形式返回)。
如
Ext.urlDecode("a=1&b=2&c=1&c=3&c=5&c=7")
返回的对象内容为
{a:1,b:2,c:[1,3,5,7]} Ext.urlDecode("a=1&b=2&c=1&c=3&c=5&c=7",true)
返回
{a:1,b:2,c:7} 10
、
Ext
.each( Array/NodeList/Mixed array, Function fn, Object scope ) : void
遍历
array
并对每项分别调用
fn
函数。如果
array
不是数组则只执行一次。
如果某项
fn
执行结果返回
false
(必须是
false
,
undefined
无效),遍历退出,后面的
array
项将不被遍历。
遍历过程中每次为
fn
传入参数分别为
[
当前数组项
]
,
[
当前索引
]
和
[
数组
array]
三个参数。
Scope
用于设定
fn
函数中的
this
指针。
如
Ext.each([1,3,5,7],function(v,i,a){ alert("index: "+i+" value: "+v+" array.length
:
"+a.length) });
将循环弹出:
index:0 value:1 array.length
:
4 index:1 value:3 array.length
:
4 index:2 value:5 array.length
:
4 index:3 value:7 array.length
:
4 Ext.each([1,3,5,7],function(v,i,a){ alert("index: "+i+" value: "+v+" array.length
:
"+a.length); return v!=5; //
到第三项后遍历退出
});
将循环弹出:
index:0 value:1 array.length
:
4 index:1 value:3 array.length
:
4 index:2 value:5 array.length
:
4 11
、
Ext
.combine(arg1,arg2..argn) : Array //
该方法在
Ext
2
不推荐再使用
用于实现对数组的合并,如果是字符串则作为只有一项的数组合并。
如
var a1=[1,3,5],b1=["a","b","c"];var c1="xxyznbde"; Ext.combine(a1,b1,c1)
返回
[1,3,5,a,b,c,xxyznbde] 12
、
Ext
. escapeRe( String str ) : String
将属于正则里的特殊字符进行转义。
如
Ext.escapeRe("(ab)$/sa342{}[dd]")
将返回
/(ab/)/$sa342/{/}/[dd/]
。
13、Ext.callback(cb, scope, args, delay) :void //该方法为Ext的内部方法 调用一个函数或延迟调用一个函数。 Cb:调用的函数。 scope:cb中this指针。 args:传如cb的参数,以数组形式表示。 delay:延迟多少毫秒执行cb。 如 Ext.callback(function(x,y){alert(x+y)},this,[3,5],1000);将于1秒钟后弹出8,即3+5的结果。 14、Ext.getDom( Mixed el ) : HTMLElement 根据传入的id/dom节点/Ext的Elemenet对象,返回其dom对象。 如alert(Ext.getDom("a").innerHTML);或 alert(Ext.getDom(document.getElementById("a")).innerHTML); 将返回id为a的元素的innerHTML内容。 15、Ext.getDoc()/Ext.getBody() : Ext.Element 分别返回页面的document对象和body对象,返回值为Ext的Element对象,而非Dom对象。 16、Ext.getCmp( String id ) : Ext.Component 根据传入的html元素id返回该元素的组件类型,返回值为Ext的Component对象。 必须保证该id对象的元素是Ext的一个内部组件(通过Ext创建的组件),否则什么都不返回。 17、Ext.num( Mixed value, Number defaultValue ) : Number 验证value是否是一个数字,如果是则直接返回否则返回defaultValue。 如 alert(Ext.num(5,7))返回5,alert(Ext.num("5",7)) 返回7 18、Ext.destroy( Mixed arg1, Mixed (optional), Mixed (optional) ) : void 销毁创建的Element或组件(Component),即销毁其所有的事件监听,dom节点,并调用对象本身的destory方法(如果存在的话),传入的参数类型为Ext.Element或Ext. Component,可以一次性传入多个对象进行销毁。 如 Ext.destory(menu,el,Button);会销毁menu,el,Button三个对象。 19、Ext.removeNode(htmlElement el): void //Ext内部方法 删除指定的dom节点。传入参数为dom对象。 如 Ext.removeNode(document.getElementById("ab")); 20、Ext.type( Mixed object ) : String 返回传入的对象的类型。 包括如下类型: string,number,boolean,function,object,array,regexp,element,nodelist,textnode,whitespace 如 Ext.type("ab")返回string Ext.type(20)返回number Ext.type([3,5,6])返回array Ext.type(/reg/)返回regexp Ext.type(document.body)返回element。 21、Ext.isEmpty( Mixed value, [Boolean allowBlank] ) : Boolean 检查一个值是否为null/undefined或是否是空,如果是则返回true。 如果传入allowBlank为true,则只检查是否为null或undefined。 如: Ext.isEmpty("a")返回false, Ext.isEmpty("")返回true, Ext.isEmpty("",true)返回false, Ext.isEmpty(null)返回true。
13、Ext.callback(cb, scope, args, delay) :void //该方法为Ext的内部方法 调用一个函数或延迟调用一个函数。 Cb:调用的函数。 scope:cb中this指针。 args:传如cb的参数,以数组形式表示。 delay:延迟多少毫秒执行cb。 如 Ext.callback(function(x,y){alert(x+y)},this,[3,5],1000);将于1秒钟后弹出8,即3+5的结果。 14、Ext.getDom( Mixed el ) : HTMLElement 根据传入的id/dom节点/Ext的Elemenet对象,返回其dom对象。 如alert(Ext.getDom("a").innerHTML);或 alert(Ext.getDom(document.getElementById("a")).innerHTML); 将返回id为a的元素的innerHTML内容。 15、Ext.getDoc()/Ext.getBody() : Ext.Element 分别返回页面的document对象和body对象,返回值为Ext的Element对象,而非Dom对象。 16、Ext.getCmp( String id ) : Ext.Component 根据传入的html元素id返回该元素的组件类型,返回值为Ext的Component对象。 必须保证该id对象的元素是Ext的一个内部组件(通过Ext创建的组件),否则什么都不返回。 17、Ext.num( Mixed value, Number defaultValue ) : Number 验证value是否是一个数字,如果是则直接返回否则返回defaultValue。 如 alert(Ext.num(5,7))返回5,alert(Ext.num("5",7)) 返回7 18、Ext.destroy( Mixed arg1, Mixed (optional), Mixed (optional) ) : void 销毁创建的Element或组件(Component),即销毁其所有的事件监听,dom节点,并调用对象本身的destory方法(如果存在的话),传入的参数类型为Ext.Element或Ext. Component,可以一次性传入多个对象进行销毁。 如 Ext.destory(menu,el,Button);会销毁menu,el,Button三个对象。 19、Ext.removeNode(htmlElement el): void //Ext内部方法 删除指定的dom节点。传入参数为dom对象。 如 Ext.removeNode(document.getElementById("ab")); 20、Ext.type( Mixed object ) : String 返回传入的对象的类型。 包括如下类型: string,number,boolean,function,object,array,regexp,element,nodelist,textnode,whitespace 如 Ext.type("ab")返回string Ext.type(20)返回number Ext.type([3,5,6])返回array Ext.type(/reg/)返回regexp Ext.type(document.body)返回element。 21、Ext.isEmpty( Mixed value, [Boolean allowBlank] ) : Boolean 检查一个值是否为null/undefined或是否是空,如果是则返回true。 如果传入allowBlank为true,则只检查是否为null或undefined。 如: Ext.isEmpty("a")返回false, Ext.isEmpty("")返回true, Ext.isEmpty("",true)返回false, Ext.isEmpty(null)返回true。