Нет встроенного способа сделать это в стандартном JavaScript, если вы пытаетесь сделать это с помощью самого JavaScript.
Почти на всех (но не на всех) движках JavaScript вы можете получить формуисточника функции из функции toString
объекта функции, например:
var testSource = test.toString();
... и, конечно, вы можете это проанализировать.Это нестандартное поведение (результат вызова toString
для функции не определен в спецификации ), но он широко поддерживается.Вам все равно придется выполнить разбор, чтобы найти символы.
Для разбора у вас есть несколько вариантов.Вы можете попытаться отделить часть синтаксического анализатора JSLint от остальной части, или альтернативно компрессор со страшным именем UglifyJS имеет полный синтаксический анализатор JavaScript, который уже отделен от части компрессора.(см. parse-js.js; очевидно, есть небольшой кусочек специфичных для NodeJS вещей, которые вы, возможно, захотите удалить).