您的位置:首页 > Web前端 > JavaScript

Extjs源码中core目录下的Ext.js详解

2009-08-07 10:28 369 查看
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 //该方法在Ext2不推荐再使用 用于实现对数组的合并,如果是字符串则作为只有一项的数组合并。 如 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。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/i_am_wangzg/archive/2008/07/10/2632936.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: