2015-10-16 61 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>

相关问题