Underscore.js是一個JavaScript庫,即使不使用任何內置對象,它也提供了許多有用的函數,例如Map,過濾器,調用等。
_.defer()函數用於調用/調用函數,直到清除當前調用堆棧為止。它的主要優勢在於,它可以分塊執行昂貴的計算,計算或HTML,而不會阻止UI線程的更新。它具有與setTimeOut()函數類似的函數,但延遲為0。將首先調用傳遞給該函數的函數。
調用堆棧是一種解釋器(例如JavaScript解釋器)的機製,用於跟蹤其在調用多個函數的腳本中的位置。
用法:
_.defer(function, *arguments)
參數:
它有兩個參數:
- The function
- The arguments (optional)
返回值:
它不返回任何值,而是執行傳遞的函數。
- 將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>
輸出:
- 使用_.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>
輸出:
- 將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>
輸出:
- 對_.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>
輸出:
`
注意:
這些命令在Google控製台或firefox中將無法使用,因為需要添加這些尚未添加的其他文件。
因此,將給定的鏈接添加到您的HTML文件,然後運行它們。
鏈接如下:
<script type="text/javascript" src =
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js">
</script>
相關用法
- HTML defer屬性用法及代碼示例
- HTML <script> defer屬性用法及代碼示例
- HTML Script defer用法及代碼示例
- PHP DOMNode cloneNode()用法及代碼示例
- node.js Stream writable.writableFinished用法及代碼示例
- node.js Stream writable.writableObjectMode用法及代碼示例
- node.js process.platform用法及代碼示例
- node.js process.debugPort用法及代碼示例
- node.js process.title用法及代碼示例
- PHP DOMNode getLineNo()用法及代碼示例
- Node.js process.cwd()用法及代碼示例
- node.js process.argv用法及代碼示例
注:本文由純淨天空篩選整理自Sakshi98大神的英文原創作品 Underscore.js | _.defer()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。