本文實例講述了JavaScript惰性載入函數。分享給大家供大家參考,具體如下:
惰性載入函數
惰性載入函數表示函數執行的分支僅會發生一次,有兩種實現惰性載入函數的方式,第一種是在函數被調用時再處理,在第一次調用中,該函數會覆蓋為另外一個按合適方式執行的函數,這樣任何對函數的調用都不用再經過執行的分支了。第二種實現惰性載入的方式是在聲明函數時就制定適當的函數,這樣,第一次調用函數時就不會損失性能了,而在代碼首次加載時會損失一點兒性能。
載入方式一
var flag = 1;function test1() { if(typeof flag === 'undefined') { test1 = function() { return 0; } } else if(flag === 1) { test1 = function() { return 1; } } else { test1 = function () { return -1; } } return test1();}
這里if語句的每個分支都會為test1變量賦值,有效覆蓋了原有的函數,最后一步便是調用新賦的函數,下一次調用test1()的時候就會直接調用被分配的函數,就不會再走if語句了,這樣就可以提高性能。
載入方式二
var flag = 1;var test2 = (function() { if(typeof flag === 'undefined') { return function() { return 0; } } else if(flag === 1) { return function () { return 1; } } else { return function () { return -1; } }})();
不同點是使用了立即執行函數,通過var
來定義函數,在每個if
分支中return
一個函數
總結
這兩種方式都能避免執行不必要的代碼。方式一中第一次調用會損失性能,方式二重首次加載時會損失性能
希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答