欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2019年03月27日 11:39:21   作者:Johnny丶me  
這篇文章主要介紹了JavaScript惰性載入函數(shù),結(jié)合實例形式分析了JavaScript惰性載入函數(shù)的概念、原理、實現(xiàn)方法及相關(guān)操作注意事項,需要的朋友可以參考下

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

惰性載入函數(shù)

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

載入方式一

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變量賦值,有效覆蓋了原有的函數(shù),最后一步便是調(diào)用新賦的函數(shù),下一次調(diào)用test1()的時候就會直接調(diào)用被分配的函數(shù),就不會再走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;
  }
 }
})();

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

總結(jié)

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

更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript常用函數(shù)技巧匯總》、《javascript面向?qū)ο笕腴T教程》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)

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

相關(guān)文章

  • JS實現(xiàn)控制文本框的內(nèi)容

    JS實現(xiàn)控制文本框的內(nèi)容

    下面小編就為大家?guī)硪黄狫S實現(xiàn)控制文本框的內(nèi)容。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • 探究JavaScript原型數(shù)據(jù)共享與方法共享實現(xiàn)

    探究JavaScript原型數(shù)據(jù)共享與方法共享實現(xiàn)

    這篇文章主要介紹了探究JavaScript原型數(shù)據(jù)共享與方法共享實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • js不同客戶端顯示不同廣告(pc端+移動端+微信端)

    js不同客戶端顯示不同廣告(pc端+移動端+微信端)

    這篇文章主要介紹了js不同客戶端顯示不同廣告(pc端+移動端+微信端),比較適合自適應(yīng)網(wǎng)站的廣告,需要的朋友可以參考下
    2023-02-02
  • javascript斷點調(diào)試心得分享

    javascript斷點調(diào)試心得分享

    javascript中程序是怎么可以中斷執(zhí)行,然后一步一步走下去。而且debug的時候,可以看到變量,調(diào)用棧等東西。這個是如何實現(xiàn)的?
    2016-04-04
  • UniApp使用manifest.json應(yīng)用配置的超詳細(xì)教學(xué)

    UniApp使用manifest.json應(yīng)用配置的超詳細(xì)教學(xué)

    這篇文章主要給大家介紹了關(guān)于uni-app應(yīng)用配置manifest.json最全最詳細(xì)配置,manifest.json文件是應(yīng)用的配置文件,用于指定應(yīng)用的名稱、圖標(biāo)、權(quán)限等,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • JavaScript的console命令使用實例

    JavaScript的console命令使用實例

    這篇文章主要介紹了javascript的console命令使用實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • javaScript 刪除確認(rèn)實現(xiàn)方法小結(jié)

    javaScript 刪除確認(rèn)實現(xiàn)方法小結(jié)

    因為對于內(nèi)容的刪除是件很重要的事,所以一般的系統(tǒng)中,都需要刪除確認(rèn)一下,以免誤刪,具體的方法如下,大家可以參考下。
    2009-12-12
  • JavaScript DOM 添加事件

    JavaScript DOM 添加事件

    這是我在給庫中添加事件的時候?qū)懙奶砑邮录姆椒?!這個方法實現(xiàn)了跨瀏覽器之間的方法!
    2009-02-02
  • JavaScript獲取Url里的參數(shù)

    JavaScript獲取Url里的參數(shù)

    這篇文章主要介紹了JavaScript獲取Url里的參數(shù),需要的朋友可以參考下
    2014-12-12
  • Jquery+javascript實現(xiàn)支付網(wǎng)頁數(shù)字鍵盤

    Jquery+javascript實現(xiàn)支付網(wǎng)頁數(shù)字鍵盤

    這篇文章主要為大家詳細(xì)介紹了Jquery+javascript實現(xiàn)支付網(wǎng)頁數(shù)字鍵盤,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12

最新評論