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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。