如何获取JS脚本中的唯一函数总数

时间:2015-06-14 13:01:51

标签: javascript

我正在查看pace.js的来源,它有一个很长的源代码,大约有一千行。您可以查看来源here

我需要调试此代码。 JavaScript中是否有任何工具或方法可用于识别给定插件中有多少独特函数?我找到了一种方法:

  • 将代码粘贴到文本编辑器中
  • 单独识别每个功能
  • 粘贴console.log("我是这样的功能")。
  • 运行脚本并从文本编辑器中的控制台复制粘贴结果
  • 计算功能数量

有更简单的方法吗?

2 个答案:

答案 0 :(得分:1)

此方法首先查找window对象中的所有函数。然后将这些函数引用传递给' getInnerFunction()'它将函数与正则表达式进行匹配,以检测任何内部函数。最后返回函数计数。

然而,它将无法检测浏览器中存在的本机函数的内部函数,因为它们返回

function FUNCTION NAME {
    [native code]
}

这是字符串输出。

对于其他情况,这应该有效。只需调用fnCount(),您将收到存在的函数数量(从结果中减去2以排除这两个函数)。

**如果函数匹配正则表达式有任何问题,请纠正我。

function fnCount(){

var keys = Object.keys(window);
var property;
var count = 0;
for(var i=0;i<keys.length; i++){
    property = window[keys[i]];
    if(typeof(property) === 'function'){
        count += getInnerFunction(property);
    }
}
return count;
}


function getInnerFunction(property){
    var fn = property.toString();
    var fnCount = fn.match(/function.*\(.*\).*{.*/g).length;
    return fnCount; 
}

答案 1 :(得分:-1)

打开notepad ++,按CTRL + F,键入function,单击Find all ...

enter image description here