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


underscore.js _.wrap()用法及代码示例


Underscore.js 是一个 JavaScript 库,即使不使用任何 内置 对象,它也提供了许多有用的函数,如Map、过滤器、调用等。
_.wrap() 用于将函数包装在其他函数中。这意味着第一个调用函数(在其主体中调用另一个函数的函数)被调用,然后被调用的函数正在执行。如果调用函数没有调用被调用函数,则不会执行第二个函数。

用法:

_.wrap( function, wrapper )

参数:该函数接受下面列出的两个参数:

  • function:该参数用于保存函数名。
  • wrapper:此参数用于保存包装第一个函数的包装函数。

返回值:它返回过程中涉及的两个函数的输出。



不传递 _.wrap() 函数的两个函数的参数:调用该函数,该函数被传递给 console.log() 函数。该函数体包含调用另一个函数的 _.wrap() 函数。然后另一个函数体被执行,最后控制权返回到被调用的函数。

例:


<!DOCTYPE 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">
        var func1 = function() { return "first function. "; };
          
        func2 = _.wrap(func1, function(func) {
            return func() + "second func. ";
        });
          
        console.log(func2());
    </script>
</body>
  
</html>                    

输出:

将参数传递给 _.wrap() 函数的第二个函数:将参数从第一个函数定义传递给第二个函数。在定义中,第二个函数的参数将通过在括号内的双引号(“”)内给出参数来传递。该函数将像之前一样工作,第一个被调用的函数将被执行,然后第一个函数将被执行。

例:


<!DOCTYPE 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">
        var func1 = function(a) { 
            return "first function:" + a + "."; 
        };
          
        func2 = _.wrap(func1, function(func) {
            return "second func starts. " 
            + func("10") + " second function ends.";
        });
          
        console.log(func2());
    </script>
</body>
  
</html>                    

输出:

将特殊字符作为参数传递给 _.wrap() 函数的第二个函数:将特殊字符传递给第二个函数,然后 _.wrap() 函数将以相同的方式工作。它将特殊字符作为普通字符,然后以相同的方式工作。第一个函数将被调用,然后它的主体将被执行。之后,当在第二个函数内部调用第一个函数时,将执行第二个函数体。

例:


<!DOCTYPE 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">
        var func1 = function(a) { return a; };
      
        func2 = _.wrap(func1, function(func) {
            return "second function starts { " 
            + func("***** This is first function *****") 
            + " } second function ends here.";
        });
          
        console.log(func2());
    </script>
</body>
  
</html>                    

输出:

将数字作为参数传递给 _.wrap() 函数的第二个函数:第二个函数也会以与考虑字符相同的方式考虑数字。这将相应地给出输出。

例:


<!DOCTYPE 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">
        var func1 = function(a) { return a + ", "; };
          
        func2 = _.wrap(func1, function(func) {
            return "10, 20, " + func("30, 40, 50") + " 60, 70.";
        });
          
        console.log(func2());
    </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> 



相关用法


注:本文由纯净天空筛选整理自Sakshi98大神的英文原创作品 Underscore.js _.wrap() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。