(一)Ext要点

来源:互联网 发布:四海认证淘宝渔具钓箱 编辑:程序博客网 时间:2024/06/14 12:33
1、Ext是经典的MVC模式


2、继承方法Ext.extend()是通过继承很多现成的组件来方便我们开发的,这个方法其实就是创建一个新类的方法,形式如下:
Ext.extend(baseClass,SubClass,Override)
第一个参数是父类,第二个参数是属性/方法列表。


3、Ext获得元素的方法通过Ext.get("elementID");或者Ext.fly("elementID");这两个方法返回Ext Element对象。Element对象除了提供一个快捷的、跨浏览器的统一接口外,还提供了高速缓存的机制,访问DOM元素时首先从缓存中查找,如果命中匹配该对象就立即返回该对象,这样在多次访问同一对象的效率上有明显优势。


4、Ext.get()和Ext.fly()的区别是:Ext.fly()不会缓存任何的元素,已声明的元素引用可能会被后来的元素冲掉;Ext.get()方法执行时会为每一个Dom元素建立一个人新的Ext.Element对象,如果获取的是相同的对象的话,则只是从缓存中提取,内存中始终留有元素的记忆。简单地说,他们本质的不同:元素经过Ext.fly()后不再保留,进多少出多少,但是经过Ext.get()的元素则在缓存中备份以供
重复使用。


5、JavaScript所有函数的参数都是可变长的;还可以不给函数定义形参,直接在函数中使用arguments属性获取实际传递的参数数组如:
function test(){
   var args=arguments;
   alert(args.length);
}
test(1,2,3,4);//运行的效果是输出:4


6、函数不支持重载,后面的同名函数会把前面的函数覆盖掉。


7、JS支持函数嵌套


8、Function的构造规则:可接受任意多个参数,最后一个参数被当做“函数体”,之前的所有参数都被当做函数参数。


9、Function的特性:①函数的构造时机不同:使用new Function()方式手动创建的函数,是在运行时才会创建,而使用var fn=function(){}这种方式声明的函数,当浏览器加载完脚本,脚本引擎扫描到这段代码的时候,就已经开始了函数初始化动作。
②作用域不同:JS函数总是在“词法作用域”中被执行,但是使用new Function()这种方式手动创建出来的函数,其作用域总是指向“顶级作用域”,也就是window。


10、JS对象的属性:
①如:function myFunc(arg1,arg2){}
alert(myFunc.length);
这里的length是函数定义的形参的个数,虽然JavaScript函数的参数是可变长的,但是这里的可变长的意思是指实际传递的参数,而这里弹出的是形参,应该是:2;


②arguments属性是一种类似于数组的结构,可以使用访问数组下标的方式[0]、[1]...来访问它,注意,arguments类似于数组,而本质上与数组并不相同,它有一个length属性,但是没有数组能够支持的那些方法。
  将arguments转换成一个真正的数组:var args=Array.prototype.slice.call(arguments);此时args对象就是一个真正的数组,在Ext中很多源码都是这样做的


③callee属性:在arguments中定义,指向函数自己,在实现递归时可以使用这个属性方便编码,利用callee可以实现函数的递归,比如一个简单的算阶乘的函数可以写成:
fact(n){
   if(n==1){
return 1;
}else{
return n*arguments.cvallee(n -1);
}
  }


④caller:某些时候,函数需要知道当前是谁在“调用”自己,这就是caller的职责所在。


11、JavaScript是没有static修饰符的。


12、JS原生的定时器工具有setTimeout和setInterval两个。
setTimeout():是在指定的时间之后执行一次指定的函数。而setInterval()会不断执行,直到取消。取消定时器的方法名分别为clearTimeout和clearInterval。


13、在定时器中给函数传递参数的方法:
var fn=function(userName){
document.body.innerHTMNL=userName;
}
window.setInterval(function(){
fn("不忘初衷");
),1000);


14、Ext为Function提供了5个实例方法:
creatCallback:给回调函数传递参数,一个重要的特性需要注意:回调函数最终都是在顶级作用域window中被调用的。
creatDelegate、defer、creatSequence、reateInterceptor



0 0