分享一個Javascript編寫函數的最佳化技巧。
適用的函數應該要滿足以下條件:
產生固定結果
頁面中多次呼叫
複雜或較耗時
程式碼和分析如下:
Java碼:
產生固定結果並且在頁面中多次呼叫的函數
function check() {
//模擬耗時操作
var begin = Date.now(); //ECMAScript5新增的,若不支援請改成new Date();
var ONE_SECOND = 1000,
result = false;
while(true) {
if(Date.now() - begin >= ONE_SECOND){
if(Date.now() - begin >= ONE_SECOND){
result = true;
break;
}
}
//函數重寫,直接回傳結果
check = function() {
return result;
}
return result;
}
var firstBegin = Date.now();
check(); //第一次函數呼叫
var firstEnd = Date.now();
check(); //第二次函數呼叫
var secondEnd = Date.now();
console.log("第一次函數費時:" (firstEnd - firstBegin) "ms.");
console.log("第二次函數費時:" (secondEnd - firstEnd) "ms.");
顯示結果如下
: