如何在Underscore中的`_.wrap`函数中使用原始参数

时间:2015-10-16 06:26:27

标签: javascript underscore.js

例如,我有一个a函数,它有两个参数bvar 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}}

1 个答案:

答案 0 :(得分:4)

您将获得原始参数作为包装函数的参数,其顺序与原始函数参数之后的顺序相同。

在下面的示例中,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>
&#13;
&#13;
&#13;