Underscore.js 是一個 JavaScript 庫,即使不使用任何 內置 對象,它也提供了許多有用的函數,如Map、過濾器、調用等。
_.defer() 函數用於調用/調用一個函數,直到當前調用堆棧被清除。它的主要優點是它以塊的形式執行昂貴的計算、計算或 HTML,而不會阻止 UI 線程更新。它與延遲為 0 的 setTimeOut() 函數函數相似。傳遞給該函數的函數將首先被調用。
調用堆棧是解釋器(如 JavaScript 解釋器)的一種機製,用於跟蹤其在調用多個函數的腳本中的位置。
用法:
_.defer(function, *arguments)
參數:
它需要兩個參數:
- function
- arguments (optional)
返回值:
它不返回任何值,而是執行傳遞的函數。
- 將 alert() 函數傳遞給 _.defer() 函數:
_.defer() 函數首先檢查當前調用堆棧。如果它被清除,則將執行傳遞給它的 alert() 函數,並顯示傳遞給它的字符串“This is the deferred function”。但是如果當前調用堆棧沒有被清除並且有一些其他的工作要執行,那麽 alert() 函數將不會被立即調用,而是需要等待堆棧變空。
Examples:
html
<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 deferred function');
});
</script>
</body>
</html>
- Output:
- 使用 _.defer() 函數執行加法:
我們可以使用 _.defer() 函數執行各種數學運算。就像這裏我們正在執行 7 和 3 的加法,然後警告它。將遵循相同的程序。首先,將檢查當前調用堆棧。如果它不為空,則不會調用其他函數。但如果全部清除,則會調用警報函數,顯示 7 和 3 的加法,即 10。
Example:
HTML
<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>
- Output:
- 將 console.log() 函數傳遞給 _.defer() 函數:
我們甚至可以使用其他函數,例如 console.log() 函數。 _.defer() 函數將檢查調用堆棧是否為空。如果它不為空,則不會調用 console.log() 函數。否則,控製台會顯示“This is the deferred function”。
Example:
html
<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 deferred function');
});
</script>
</body>
</html>
- Output:
- 對_.defer()函數執行加法操作:
我們甚至可以對 console.log() 函數進行加法操作。像這裏我們正在執行 1000 和 5666 的加法。如果調用堆棧為空,則顯示 “6666” (1000 + 5666),否則不會調用任何函數。
Example:
html
<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>
- Output:
筆記:
這些命令在 Google 控製台或 Firefox 中不起作用,因為需要添加他們沒有添加的這些附加文件。
因此,將給定的鏈接添加到您的 HTML 文件中,然後運行它們。
鏈接如下:
HTML
<script type="text/javascript" src =
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js">
</script>
相關用法
- d3.js queue.defer()用法及代碼示例
- HTML Script defer用法及代碼示例
- HTML <script> defer屬性用法及代碼示例
- Lodash _.defer()用法及代碼示例
- HTML defer屬性用法及代碼示例
- PHP imagecreatetruecolor()用法及代碼示例
- p5.js year()用法及代碼示例
- d3.js d3.utcTuesdays()用法及代碼示例
- PHP ImagickDraw getTextAlignment()用法及代碼示例
- PHP Ds\Sequence last()用法及代碼示例
- PHP array_udiff_uassoc()用法及代碼示例
- PHP geoip_continent_code_by_name()用法及代碼示例
注:本文由純淨天空篩選整理自Sakshi98大神的英文原創作品 Underscore.js _.defer() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。