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