国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > JS > 正文

JavaScript惰性載入函數(shù)實(shí)例分析

2024-05-06 16:49:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了JavaScript惰性載入函數(shù)。分享給大家供大家參考,具體如下:

惰性載入函數(shù)

惰性載入函數(shù)表示函數(shù)執(zhí)行的分支僅會(huì)發(fā)生一次,有兩種實(shí)現(xiàn)惰性載入函數(shù)的方式,第一種是在函數(shù)被調(diào)用時(shí)再處理,在第一次調(diào)用中,該函數(shù)會(huì)覆蓋為另外一個(gè)按合適方式執(zhí)行的函數(shù),這樣任何對(duì)函數(shù)的調(diào)用都不用再經(jīng)過執(zhí)行的分支了。第二種實(shí)現(xiàn)惰性載入的方式是在聲明函數(shù)時(shí)就制定適當(dāng)?shù)暮瘮?shù),這樣,第一次調(diào)用函數(shù)時(shí)就不會(huì)損失性能了,而在代碼首次加載時(shí)會(huì)損失一點(diǎn)兒性能。

載入方式一

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語(yǔ)句的每個(gè)分支都會(huì)為test1變量賦值,有效覆蓋了原有的函數(shù),最后一步便是調(diào)用新賦的函數(shù),下一次調(diào)用test1()的時(shí)候就會(huì)直接調(diào)用被分配的函數(shù),就不會(huì)再走if語(yǔ)句了,這樣就可以提高性能。

載入方式二

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;  } }})();

不同點(diǎn)是使用了立即執(zhí)行函數(shù),通過var來(lái)定義函數(shù),在每個(gè)if分支中return一個(gè)函數(shù)

總結(jié)

這兩種方式都能避免執(zhí)行不必要的代碼。方式一中第一次調(diào)用會(huì)損失性能,方式二重首次加載時(shí)會(huì)損失性能

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新郑市| 峨眉山市| 绍兴县| 万年县| 万宁市| 金乡县| 广西| 汤阴县| 阿克| 赣州市| 华宁县| 五家渠市| 黄龙县| 运城市| 秦皇岛市| 清河县| 北京市| 兰西县| 丹阳市| 开远市| 安塞县| 长治县| 盘山县| 德化县| 枣阳市| 井陉县| 佛冈县| 长乐市| 大荔县| 襄垣县| 秭归县| 泸水县| 大邑县| 乐至县| 桐庐县| 许昌市| 六盘水市| 永胜县| 都匀市| 九江县| 曲靖市|