Есть несколько возможностей. Для первых нескольких вариантов я (возможно, ошибочно) предполагаю, что вы не пропустите args
как один параметр массива. Если вы хотите, чтобы каждый элемент args
был отдельным аргументом для foo()
, см. Последний пример (с использованием apply()
).
Предполагая, что вы не используете this
внутри foo()
, вот несколько вариантов:
process.nextTick(function() {
foo(args);
});
Или:
var bar = foo.bind(null, args);
process.nextTick(bar);
Если вы используете this
внутри foo()
, изменить null
в приведенном выше примере к стоимости, которую вы ожидаете, this
. Например:
var bar = foo.bind(foo, args);
process.nextTick(bar);
Вы можете также хотел бы посмотреть на call()
и apply()
. apply()
особенно полезно, если вы хотите иметь массив (скажем, [1, 2, 7]
), который вы хотите разложить по функциональной арг (то есть, foo(1, 2, 7)
вместо foo([1, 2, 7])
):
process.nextTick(function() {
foo.apply(null, args);
}
Как bind()
, если вы используйте this
внутри foo
, а затем измените null
в приведенном выше примере, чтобы быть тем значением, которое вы ожидаете. this
.
w/Array: 'Function.apply.bind (foo, null, ['arg1', 'arg2', 'arg3'])' – dandavis