Extjs的面向對象:
//參數:子類,父類,重寫的方法
Ext.extend(Bus,Car,{
//重寫父類的方法
move:function(){...}
},
//重寫父類的方法
toString:function(){...}
);
//簡寫
var Car = Ext.extend(Bus,{
//也可以重寫構造函數
constructor:function(){...}
},
move:function(){...}
);
Ext.apply(config1,config2);//將config2的屬性賦值給config1,不管config1屬性是否存在一律重寫
Ext.apply(config1,config2,config3);//config1中沒有config3的賦值添加但不重寫,congig2的屬性一律會重寫到config1中
上面三個參數的執行順序:Ext.applyIf(config1,config3);Ext.apply(config1,config2);
判斷瀏覽器:
IE:Ext.isIE Ext.isIE6,7,8
safari:Ext.isSafari Ext.isSafari2,3,4
webkit:Ext.isWebkit
....
判斷操作系統與瀏覽器判斷相似
定時調用函數
//類似setTimeout
var task = Ext.util.DelayedTask(function(){...});
task.deplay(2000);
DelayedTask接受參數有點麻煩
var task = Ext.util.DelayedTask();
task.deplay(2000,
$fun,//要執行的函數
this,//函數執行時的範圍,默認是window
commands//要傳給執行函數的參數
);
//類似setInterval
var sayHi = function(){...}
var task = {
run:sayHi,
interval:2000
};
var runner = new Ext.util.TaskRunner();
runner.start(task);
//h或者:Ext.TsakMgr.start(task); Ext.Task.stop(task);
Ext.Task.stopAll() //停止所有任務
//模仿多線程
var task1 = {
run:sayHi,
interval:2000
};
var task2 = {
run:sayHi,
interval:2000
};
Ext.TsakMgr.start(task1);
Ext.TsakMgr.start(task2);