當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Underscore.js _.defer()用法及代碼示例


Underscore.js是一個JavaScript庫,即使不使用任何內置對象,它也提供了許多有用的函數,例如Map,過濾器,調用等。

_.defer()函數用於調用/調用函數,直到清除當前調用堆棧為止。它的主要優勢在於,它可以分塊執行昂貴的計算,計算或HTML,而不會阻止UI線程的更新。它具有與setTimeOut()函數類似的函數,但延遲為0。將首先調用傳遞給該函數的函數。
調用堆棧是一種解釋器(例如JavaScript解釋器)的機製,用於跟蹤其在調用多個函數的腳本中的位置。

用法:


_.defer(function, *arguments)

參數:
它有兩個參數:

  • The function
  • The arguments (optional)

返回值:
它不返回任何值,而是執行傳遞的函數。

  1. 將alert()函數傳遞給_.defer()函數:
    _.defer()函數首先檢查當前的調用堆棧。如果清除,則將執行傳遞的alert()函數,並顯示傳遞給它的字符串“ This is defered function”。但是,如果當前的調用堆棧沒有清除並且還有其他一些作業要執行,則alert()函數將不會立即被調用,而是需要等到堆棧變空為止。
    例子:
    <html> 
      
    <head> 
        <script src= 
    "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> 
      </script> 
    </head> 
      
    <body> 
        <script type="text/javascript"> 
            _.defer(function() { 
                alert('This is the defered function'); 
            }); 
        </script> 
    </body> 
      
    </html>

    輸出:

  2. 使用_.defer()函數執行加法:
    我們可以使用_.defer()函數執行各種數學運算。像這裏一樣,我們正在執行7和3的加法運算,然後發出警報。將遵循相同的步驟。首先,將檢查當前的調用堆棧。如果不為空,則不會調用其他函數。但是,如果全部清除,則會調用警報函數,顯示7和3的加法,即10。
    例:
    <html> 
      
    <head> 
        <script src= 
    "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> 
      </script> 
    </head> 
      
    <body> 
        <script type="text/javascript"> 
            _.defer(function() { 
                alert(7 + 3); 
            }); 
        </script> 
    </body> 
      
    </html>

    輸出:

  3. 將console.log()函數傳遞給_.defer()函數:
    我們甚至可以使用其他函數,例如console.log()函數。 _.defer()函數將檢查調用堆棧是否為空。如果不為空,則不會調用console.log()函數。否則,控製台上將顯示“這是延遲的函數”。
    例:
    <html> 
      
    <head> 
        <script src= 
    "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> 
      </script> 
    </head> 
      
    <body> 
        <script type="text/javascript"> 
            _.defer(function() { 
                console.log('This is the defered function'); 
            }); 
        </script> 
    </body> 
      
    </html>

    輸出:

  4. 對_.defer()函數執行加法運算:
    我們甚至可以對console.log()函數執行添加操作。像這裏一樣,我們正在執行1000和5666的加法。如果調用堆棧為空,則將顯示“6666”(1000 + 5666),否則將不會調用任何函數。
    例:
    <html> 
      
    <head> 
        <script src= 
    "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> 
      </script> 
    </head> 
      
    <body> 
        <script type="text/javascript"> 
            _.defer(function() { 
                console.log(1000 + 5666); 
            }); 
        </script> 
    </body> 
      
    </html>

    輸出:

  5. `

注意:
這些命令在Google控製台或firefox中將無法使用,因為需要添加這些尚未添加的其他文件。
因此,將給定的鏈接添加到您的HTML文件,然後運行它們。
鏈接如下:

<script type="text/javascript" src = 
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> 
</script>


相關用法


注:本文由純淨天空篩選整理自Sakshi98大神的英文原創作品 Underscore.js | _.defer()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。