例如,我有一个a
函数,它有两个参数b
和var example = function(a, b){...}
。
b
现在我想包装这个函数,对参数a
做一些更改,如何在我的wrap函数中得到example = _.wrap(example, function(original)){
//do some changes to b
....
original(?, b)//how can i get a
}
?
{{1}}
答案 0 :(得分:4)
您将获得原始参数作为包装函数的参数,其顺序与原始函数参数之后的顺序相同。
在下面的示例中,a
和b
将是传递给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>
&#13;