2015-06-14 17 views
0

我正在看pace.js的来源,它有一个相当长的约一千行的源代码。您可以查看源码here如何获得一个JS脚本中的独特功能的总数

我需要调试此代码。 JavaScript中是否有任何工具或方法可以用来确定给定插件中有多少独特的功能?我发现这是一个办法:

  • 粘贴在文本编辑器
  • 代码确定各功能独立
  • 粘贴的console.log(“我是某某功能”)。
  • 运行脚本和复制的结果从控制台粘贴在文本编辑器
  • 计数功能的数

有没有一种更简单的方法来做到这一点?

+1

你不能只取词“功能”的计数使用的搜索功能无论使用哪种文本编辑器? –

+0

@AlexMcMillan,好主意! ,但这对于我的非编程老板来说还不够明确。 –

+1

听起来像你需要为这段代码生成一些文档。会像JSDoc的工作? –

回答

1

该方法首先找到窗口对象中的所有函数。然后将这些函数引用传递给与函数匹配的'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; 
} 
+0

您可以修改fnCount方法并传入'Pace'而不是'window'以获取仅用于该库的函数计数。 –

-1

打开记事本++,按Ctrl + F,输入功能,单击查找所有...

enter image description here