如何在 Underscore 的 `_.wrap` 函数中使用原始参数
How to use original parameter in `_.wrap` function in Underscore
比如我有一个example
函数,它有两个参数a
和b
。
var example = function(a, b){...}
现在我想包装这个函数,对参数 b
做一些更改,我怎样才能在我的包装函数中得到 a
?
example = _.wrap(example, function(original)){
//do some changes to b
....
original(?, b)//how can i get a
}
您将获得原始参数作为包装函数的参数,其顺序与在原始函数参数之后传递的顺序相同。
在下面的示例中,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>
比如我有一个example
函数,它有两个参数a
和b
。
var example = function(a, b){...}
现在我想包装这个函数,对参数 b
做一些更改,我怎样才能在我的包装函数中得到 a
?
example = _.wrap(example, function(original)){
//do some changes to b
....
original(?, b)//how can i get a
}
您将获得原始参数作为包装函数的参数,其顺序与在原始函数参数之后传递的顺序相同。
在下面的示例中,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>