JS常用經驗總結

2021-08-23 12:24:06 字數 2079 閱讀 7825

function getallquery()

let query=null;

if(list.length>1)else

let vars = query.split("&");

for (let i=0;i1、單例模式

定義:保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。實現的方法為先判斷例項存在與否,如果存在則直接返回,如果不存在就建立了再返回,這就確保了乙個類只有乙個例項物件。

class createuser

getname()

}// **實現單例模式

var proxymode = (function()

return instance;

}})();

// 測試單體模式的例項

var a = new proxymode("aaa");

var b = new proxymode("bbb");

// 因為單體模式是只例項化一次,所以下面的例項是相等的

console.log(a === b); //true

2、策略模式

定義:定義一系列的演算法,把他們乙個個封裝起來,並且使他們可以相互替換。策略模式的目的就是將演算法的使用演算法的實現分離開來。

/*策略類*/

var levelobj = ,

"b" : function(money) ,

"c" : function(money)

};/*環境類*/

var calculatebouns =function(level,money) ;

console.log(calculatebouns('a',10000)); // 40000

3、**模式

**模式的定義:為乙個物件提供乙個代用品或佔位符,以便控制對它的訪問。如:某乙個花銷很大的操作,可以通過虛擬**的方式延遲到這種需要它的時候才去建立(例:使用虛擬**實現懶載入)。

var imgfunc = (function() 

}})();

var proxyimage = (function()

return

}})();

proxyimage.setsrc('./pic.png');

4、中介者模式

定義:通過乙個中介者物件,其他所有的相關物件都通過該中介者物件來通訊,而不是相互引用,當其中的乙個物件發生改變時,只需要通知中介者物件即可。通過中介者模式可以解除物件與物件之間的緊耦合關係。

適用的場景:例如購物車需求,存在商品選擇表單、顏色選擇表單、購買數量表單等等,都會觸發change事件,那麼可以通過中介者來**處理這些事件,實現各個事件間的解耦,僅僅維護中介者物件即可。

var goods = ;

//中介者

var mediator = (function() }}

})();

colorselect.onchange = function() ;

memoryselect.onchange = function() ;

numselect.onchange = function() ;

5、裝飾者模式

定義:在不改變物件自身的基礎上,在程式執行期間給物件動態地新增方法。

場景:原有方法維持不變,在原有方法上再掛載其他方法來滿足現有需求;函式的解耦,將函式拆分成多個可復用的函式,再將拆分出來的函式掛載到某個函式上,實現相同的效果但增強了復用性。

function.prototype.before = function(beforefn) 

}function.prototype.after = function(afterfn)

}var func = function()

//func1和func3為掛載函式

var func1 = function()

var func3 = function()

func = func.before(func1).after(func3);

func();

Mysql優化常用經驗總結

適當使用查詢快取 當查詢結果確定不大於1行時,使用limit 1 列有固定可選值時,使用enum而不是varchar 為搜尋欄位建索引 join表使用相同的型別,並建立索引 使用explain來優化語句 避免select 永遠為每張表設定id 盡可能使用notnull prepared statem...

經驗總結 資料預處理經驗總結1

1.對於特徵較多的df,進行資料預處理時需要對每個特徵變數進行相關處理,為了避免混亂,可以df.info 後將輸出複製到sublime,然後在sublime中針對每個特徵變數進行處理方式標註 非python 只是為了展示在sublime中的效果 action type 30697 non null ...

C 經驗總結

1.標準庫的使用過程中,自己一定要注意,不能使用迭代器保留,因為新的stl中,加入了迭代器新的檢測機制,就是為了怕使用者使用的過程中自己將迭代器有意無意的引用了不存在的物件,因此這就要求我們的迭代器物件一定要在訪問的物件之前進行析購,否則你的程式將出錯。這個是c v8.0 中ms 加入新的安全機制,...