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