添加新的第一个参数,然后应用原始参数
Adding new first argument, then applying original arguments
>我正在使用map来映射一组函数,如下所示:
function runWaterfall(consumer, fns, cb) {
fns = fns.map(function (fn) {
return function () {
fn(consumer, arguments);
}
});
async.waterfall(fns, cb);
}
所以正如你所看到的,我想添加"consumer"作为每个函数fn的第一个参数,但我不相信我的语法是正确的。
也许这样更好:
function runWaterfall(consumer, fns, cb) {
fns = fns.map(function (fn) {
return function () {
fn.apply(null,[consumer, arguments]);
}
});
async.waterfall(fns, cb);
}
我怀疑这些中的任何一个都是正确的
您不仅可以使用 Function.prototype.bind
来设置上下文this
还可以提供参数。你和apply
很接近,但它会立即调用该函数,而bind
将返回一个预填充参数的函数:
fns = fns.map(function (fn) {
return fn.bind( null, consumer )
});
https://jsfiddle.net/qmuv8com/
好问题!你快到了,只需要将类似数组的arguments
转换为数组并与consumer
连接
function runWaterfall(consumer, fns, cb) {
fns = fns.map(function (fn) {
return function () {
var args = Array.prototype.slice.call(arguments, 0);
fn.apply(null, [consumer].concat(args));
}
});
async.waterfall(fns, cb);
}
相关文章:
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 根据函数参数将CSS值存储在var中,然后对其进行操作
- 在函数中传递参数,然后调用onClick函数
- 其中是在ReactJS中放置一个值的最佳位置,该值由传入的初始参数计算一次,然后再也不会更改
- 如何将标签 ID 作为参数传递给 javascript 函数,然后根据需要获得不同标签的文本
- 如何将一个函数(委托?)作为参数传递给Javascript中的另一个函数,然后使用它
- 解绑,然后将 OnClick 函数(带有动态参数)绑定到 jQuery 或 JavaScript 中继器中的锚标记
- Javascript函数,它接受可变数量的参数 - 更改它们的值 - 然后返回它们
- 添加新的第一个参数,然后应用原始参数
- 将函数作为参数传递,然后在jquery函数中执行它
- 使用isNan()函数将参数从html传递给javascript,并检查值然后返回值
- Javascript:如何使用apply方法传递参数数组,然后在被调用的函数中访问它
- HTML将参数传递给javascript函数,然后javascript函数进行日期比较,然后javascript返回以H
- 提取第一个url参数,然后将其放入脚本标记中
- 参数从按钮到模态,然后调用Spring控制器
- 在html中声明一个参数,然后在Javascript中接收它
- JSON.将其字符串化,然后作为命令行参数发送
- MVC - Html.操作使用Javascript检索元素,然后将其作为参数传递给Controller,然后返回一个Pa
- 向AJAX响应添加参数,然后根据返回参数应用操作
- 中级JavaScript:将函数及其参数赋值给变量,然后执行