Вызовите функцию с аргументами в качестве отдельных аргументов. - PullRequest
1 голос
/ 16 марта 2011

Я пытаюсь передать переменную arguments функции как отдельные аргументы другой функции.Я попробовал это:

function call_function(func) {
    func(arguments);
}

Однако call_function(someFunction, 123, 456) на самом деле звонит someFunction([someFunction, 123, 456]).Независимо от того, передана ли сама функция, она передается как Arguments объект / массив-подобная вещь, но я бы скорее назвал функцию в этом случае как someFunction(123, 456).

Я также пытался: func(Array.prototype.slice.call(arguments, 1)) для удаления функции (первый аргумент), но, очевидно, это на самом деле возвращает массив, т. Е. Он передает массив в качестве первого аргумента функции.

Как можно кодировать call_function, чтобывызов как call_function(someFunction, 123, 456) приводит к вызову someFunction(123, 456)?

1 Ответ

4 голосов
/ 16 марта 2011

Вы можете использовать функцию apply для вызова функции с массивом в качестве аргументов. https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...