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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。