當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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