Короткий ответ - «нет».
Длинный ответ: если JS-файл ваш JS-файл, т. Е. Вы управляете контентом, то есть несколько способов:Вы можете структурировать код, который позволит вам получить количество или список имен функций.Очевидно, что это не поможет вам с чужим кодом.Извиняюсь, если вы уже знаете все это, но на всякий случай не знаете: как правило, неплохо бы обернуть все ваши «библиотечные» функции как свойства одного объекта, что-то вроде этого:
var myFunctionLibrary = {
doSomething : function() {},
somethingElse : function() {},
nonFunctionProperty : "test",
// etc.
}
Это создает одну глобальную переменную с именем myFunctionLibrary
, которая является объектом со свойствами, которые являются ссылками на функции.(Примечание: есть несколько других способов достижения аналогичного эффекта, и я предпочитаю этот способ, но для целей этого объяснения это кажется самым простым.) Затем вы получаете доступ к функциям, говоря:
myFunctionLibrary.doSomething();
// or
myFunctionLibrary["doSomething"]();
Поскольку все ваши функции содержатся в определенном объекте, вы можете выполнять итерации по ним, как и любой другой объект:
var funcCount = 0;
var propCount = 0;
for (fn in myFunctionLibrary) {
if (typeof myFunctionLibrary[fn] === "function"){
funcCount++;
alert("Function name: " + fn);
} else {
propCount++;
}
}
alert("There are " + funcCount + " functions available, and "
+ propcount + " other properties.");
Основное преимущество заключается в том, что вам не нужно беспокоиться о своих функциях потенциальнос теми же именами, что и функции в другой библиотеке, которую вы хотите использовать.