извлечь параметры из обратного вызова вне обратного вызова - PullRequest
2 голосов
/ 12 сентября 2011

Как я могу извлечь аргументы (a, b) функции обратного вызова и добавить еще один параметр (c) к вызову функции?

function mycallback(a, b, c) {
  // do stuff with a, b, c
}

function perform(callback) {
  // I need to extract a and b here and add c:
  // ???
  //callback.apply(???);     
}

perform( function() { mycallback(1, 2) } );

1 Ответ

2 голосов
/ 12 сентября 2011

Единственный способ, которым я могу придумать, - это передать параметры самому perform, а затем позволить ему передать их обратному вызову:

function perform(callback) {
  var args = Array.prototype.slice.apply(arguments).splice(1);
  // use args... add c with args.push(c)...
  callback.apply(this, args);
}

perform(mycallback, 1, 2);
...