Как получить имена / значения параметров функции динамически? - PullRequest
275 голосов
/ 17 июня 2009

Есть ли способ получить имена параметров функции динамически?

Допустим, моя функция выглядит следующим образом:

function doSomething(param1, param2, .... paramN){
   // fill an array with the parameter name and value
   // some other code 
}

Теперь, как мне получить список имен параметров и их значений в массив из функции?

Ответы [ 31 ]

0 голосов
/ 19 мая 2015

Каким бы ни было решение, оно не должно нарушать странные функции, чья toString() выглядит так же странно:

function  (  A,  b
,c      ,d
){}

screenshot from console

Кроме того, зачем использовать сложные регулярные выражения? Это можно сделать так:

function getArguments(f) {
    return f.toString().split(')',1)[0].replace(/\s/g,'').substr(9).split(',');
}

Это работает везде с каждой функцией, и единственным регулярным выражением является удаление пробелов, которое даже не обрабатывает всю строку из-за трюка .split.

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