AngularJSとかで変数名から注入するサービスを習得してくれる所でやっている処理。
Qiitaで素晴らしいソースを発見。
function getParams(func) { var source = func.toString() .replace(/\/\/.*$|\/\*[\s\S]*?\*\/|\s/gm, ''); // strip comments var params = source.match(/\((.*?)\)/)[1].split(','); if (params.length === 1 && params[0] === '') return []; return params; }
関数オブジェクトのtoString()がソースコードを返してくれるのでそれを利用しているとのこと。
使い方としては関数をそのまま渡せばOK。