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>
相关用法
- JQuery wrap()用法及代码示例
- CSS flex-wrap用法及代码示例
- CSS word-wrap用法及代码示例
- HTML wrap属性用法及代码示例
- HTML <textarea> wrap属性用法及代码示例
- HTML Textarea wrap用法及代码示例
- underscore.js every()用法及代码示例
- JQuery has()用法及代码示例
- underscore.js contains()用法及代码示例
- underscore.js first()用法及代码示例
- JQuery first()用法及代码示例
注:本文由纯净天空筛选整理自Sakshi98大神的英文原创作品 Underscore.js | _.wrap() with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。