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


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