当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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