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


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