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