javascript получить аргументы вызванной функции? - PullRequest
0 голосов
/ 14 сентября 2018

Я хочу получить аргументы вызванной функции (метода) в этом коде JavaScript:

function add(a, b) {
    return a + b;
}

function myFunc(method) {
    // I'm trying to     get method arguments in next line
    if (method.apply(null, arguments[0]) !== 'number') // it shows here: method.apply is not a function
        throw new Error('argument 1 must be a number');
    return method;
}

console.log(myFunc(add(1, 2)));

Как вы видите, myFunc имеет функцию в качестве параметра, и я хочу получить аргументы этой вызванной функции.Это моя попытка:

method.apply(null,arguments) // method.apply is not a function

или

 method.arguments // undefined

, что я вставил, чтобы получить аргументы [a, b] для некоторой проверки, но я получаюNan.

1 Ответ

0 голосов
/ 14 сентября 2018

Это действительно запутано, но я думаю, что вы ищете что-то вроде

function add(a, b) {
    return a + b;
}

function myFunc(fn, args) {
    if (typeof args[0] !== 'number')
        throw new Error('first argument must be a number');
    return fn.apply(null, args);
}

console.log(myFunc(add, [1, 2]));
console.log(myFunc(add, [null]));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...