2011-08-03 30 views
0

我有一个JavaScript文件,其中定义了许多方法。有什么方法可以知道该文件中有多少种方法&方法的名称是什么?如何从JavaScript文件获取方法名称

+1

可能是这个帮助:http://stackoverflow.com/questions/6588977/how-to-to-extract-a-javascript-function-from-a-javascript-file – Waqas

回答

2

有没有办法知道有多少方法的Java脚本 是&有什么方法的名称是什么?

阅读来源或文档(如果有的话)。

如果您正在寻找某种“列表可用方法”功能,那就没有一个。写一个将等同于编写一个JavaScript解析器,甚至编译器。

祝你好运。 :-)

2

虽然在理论上,你可以尝试找到匹配该模式的一切:

function <name>(

你会在很多其他类型的功能被错过了。请参阅函数实际上只是JavaScript中的对象。他们可以被分配,共享,修改和移动。所以,你也不得不找到这些:

var <name> = function() {} 

而且这些:

function returnFunc() { 
    return function() {...} 
} 
var <name> = returnFunc(); 

除了这些:

obj.member = new Function(); 

而且几乎无限多种类似功能的定义。

所以,答案是,很可能你不能。除非代码是非常狭义的构造。

2

简短答案是“否”。

长的答案是,如果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."); 

主要优势,不过,是你不必担心你的功能可能具有相同的名称作为您想要使用的其他库中的函数。

+0

谢谢你的帮助。我们正在取得功能名称在JS中,但我想在我的Java文件中获取这些函数名称。我的意思是我想要一些解决方案,以便我可以遍历我的JS文件,找出函数名称并列出它们在我的Java文件中。是否有任何方法我链接我的JS文件,其功能名称与Java? – Eshika

+0

如果使用相同的签名(例如全局函数声明)编写您希望从Java访问的所有函数,那么也许可以。否则,您可以使用[jsDoc](http://code.google.com/p/jsdoc-toolkit/)样式注释,但这两种方法都不健全。 – RobG

+0

@Eshika - 你可能想更新你的问题,然后像“我的Java程序如何处理JS文件来提取函数名称?” - 并添加“Java”标签。如果你可以将范围缩小到函数声明而不是_not_函数表达式,它应该使它更容易解析,尽管你可能仍然有一些嵌套函数的问题。 – nnnnnn

0

编写一个程序,将您的文件加载到Rhino中,然后检查字典并查看您拥有的文件。

+0

检查字典的意思是检查可用的方法,但我找不到任何适当的方法,可以给我方法名称在我的JS File.Do你有任何其他的想法或我做错了什么。 – Eshika