📜  Underscore.js _.defer()函数

📅  最后修改于: 2022-05-13 01:56:22.524000             🧑  作者: Mango

Underscore.js _.defer()函数

Underscore.js 是一个 JavaScript 库,即使不使用任何内置对象,它也提供了许多有用的功能,如映射、过滤、调用等。
_.defer()函数用于调用/调用一个函数,直到当前调用堆栈被清除。它的主要优点是它以块的形式执行昂贵的计算、计算或 HTML,而不会阻止 UI 线程更新。它与延迟为 0 的 setTimeOut()函数具有相似的函数。传递给该函数的函数将首先被调用。
调用堆栈是解释器(如 JavaScript 解释器)的一种机制,用于跟踪其在调用多个函数的脚本中的位置。
句法:

_.defer(function, *arguments)

参数:
它需要两个参数:

  • 函数
  • 参数(可选)

返回值:
它不返回任何值,而是执行传递的函数。

  1. 将 alert()函数传递给 _.defer()函数:
    _.defer()函数首先检查当前调用堆栈。如果它被清除,则将执行传递的 alert()函数,并显示传递给它的字符串“这是延迟函数”。但是,如果当前调用堆栈没有被清除并且还有一些其他工作要执行,那么 alert()函数将不会立即被调用,而是需要等待堆栈变空。
    例子:
html

  

    

  

    

  


HTML

  

    

  

    

  


html

  

    

  

    

  


html

  

    

  

    

  


HTML


  1. 输出:

  1. 使用 _.defer()函数执行加法:
    我们可以使用 _.defer()函数执行各种数学运算。就像这里我们正在执行 7 和 3 的加法,然后警告它。将遵循相同的程序。首先,将检查当前调用堆栈。如果它不为空,则不会调用其他函数。但如果全部清除,则会调用警报函数,显示 7 和 3 的加法,即 10。
    例子:

HTML


  

    

  

    

  

  1. 输出:

  1. 将 console.log()函数传递给 _.defer()函数:
    我们甚至可以使用其他函数,例如 console.log()函数。 _.defer()函数将检查调用堆栈是否为空。如果它不为空,则不会调用 console.log()函数。否则,控制台会显示“This is the deferred 函数”。
    例子:

html


  

    

  

    

  

  1. 输出:

  1. 对 _.defer()函数执行加法操作:
    我们甚至可以对 console.log()函数进行加法操作。像这里我们正在执行 1000 和 5666 的加法。如果调用堆栈为空,则将显示“6666”(1000 + 5666),否则将不调用任何函数。
    例子:

html


  

    

  

    

  

  1. 输出:

笔记:
这些命令在 Google 控制台或 Firefox 中不起作用,因为需要添加他们没有添加的这些附加文件。
因此,将给定的链接添加到您的 HTML 文件中,然后运行它们。
链接如下:

HTML