Вызов функции с переменным значением внутри функции с переменным значением в Javascript? - PullRequest
7 голосов
/ 24 июля 2011

У меня есть две функции a () и b (), обе являются переменными функциями, скажем, когда я вызываю функцию a () следующим образом:

a(arg0, arg1, arg2, arg3, ...., argn);

тогда функция b () будет также вызываться внутри a (), но без первого аргумента "arg0" в списке аргументов a ():

b(arg1, arg2, arg3, ...., argn);

Есть ли способ для этого?

1 Ответ

20 голосов
/ 24 июля 2011

Каждый JavaScript function на самом деле просто еще один «объект» (объект в смысле JavaScript) и поставляется с методом apply (см. документация Mozilla ).Таким образом, вы можете сделать что-то вроде этого ...

b = function(some, parameter, list) { ... }

a = function(some, longer, parameter, list)
{
   // ... Do some work...

   // Convert the arguments object into an array, throwing away the first element
   var args = Array.prototype.slice.call(arguments, 1);

   // Call b with the remaining arguments and current "this"
   b.apply(this, args);
}
...