2015-10-16 19 views
2

例如,我有一個example函數,它有兩個參數ab如何在下劃線中的`_.wrap`函數中使用原始參數

var example = function(a, b){...} 

現在我想換這個功能,做一些對參數b,我怎麼能在我的包裹功能得到a

example = _.wrap(example, function(original)){ 
    //do some changes to b 
    .... 
    original(?, b)//how can i get a 
} 

回答

3

您將按照與在原始函數參數後傳遞的順序相同的順序獲取原始參數作爲包裝器函數的參數。

在下面的例子中,ab將是傳遞給hello函數的2個參數。

var hello = function(p1, p2) { 
 
    return p1 + ": " + p2; 
 
}; 
 
hello = _.wrap(hello, function(func, a, b) { 
 
    return "before, " + func(a, b + 'Name') + ", after"; 
 
}); 
 
snippet.log(hello('hellow', 'User'));
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> 
 
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script> 
 
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script>

相關問題