Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从JavaScript文件中获取方法名_Javascript_Reflection - Fatal编程技术网

如何从JavaScript文件中获取方法名

如何从JavaScript文件中获取方法名,javascript,reflection,Javascript,Reflection,我有一个JavaScript文件,其中定义了许多方法。有没有办法知道该文件中有多少方法&方法的名称是什么 有没有办法知道Java中有多少方法 脚本&方法的名称是什么 阅读源代码或文档(如果有) 如果您正在寻找某种类型的“列出可用方法”函数,则没有。编写一个类似于编写javascript解析器甚至编译器 祝你好运。:-) 有没有办法知道Java中有多少方法 脚本&方法的名称是什么 阅读源代码或文档(如果有) 如果您正在寻找某种类型的“列出可用方法”函数,则没有。编写一个类似于编写javascrip

我有一个JavaScript文件,其中定义了许多方法。有没有办法知道该文件中有多少方法&方法的名称是什么

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

阅读源代码或文档(如果有)

如果您正在寻找某种类型的“列出可用方法”函数,则没有。编写一个类似于编写javascript解析器甚至编译器

祝你好运。:-)

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

阅读源代码或文档(如果有)

如果您正在寻找某种类型的“列出可用方法”函数,则没有。编写一个类似于编写javascript解析器甚至编译器


祝你好运。:-)

而从理论上讲,你可以尝试找到所有符合模式的东西:

function <name>(
以及几乎无限多种类似的函数定义


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

而理论上,您可以尝试找到与模式匹配的所有内容:

function <name>(
以及几乎无限多种类似的函数定义

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

简短的回答是“否”

答案很长,如果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.");
不过,它的主要优点是,您不必担心您的函数可能与您想要使用的其他库中的函数具有相同的名称。

简短的回答是“否”

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

不过,它的主要优点是,您不必担心您的函数可能与您想要使用的其他库中的函数同名。

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

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

可能有帮助:可能有帮助:谢谢帮助。我们正在获取JS中的函数名,但我想在我的Java文件中获取这些函数名。我的意思是我需要一些解决方案,以便我可以遍历我的JS文件,找出函数名并在我的Java文件中列出它们。是否有任何方法可以将我的JS文件及其函数名与Java链接起来?如果您使用相同的签名(例如,全局函数声明)编写希望从Java访问的所有函数,那么您或许可以。否则,您将使用样式注释,但这两种方法都不可靠。@Eshika-您可能希望将问题更新为“我的Java程序如何处理JS文件以提取函数名?”-并添加“Java”标记。如果可以将范围缩小到函数声明,而不是函数表达式,那么应该更容易解析,尽管嵌套函数可能仍然存在一些问题。我可以从Java调用JS文件并通过Rhino运行该函数。是否有任何方法可以检索特定文件的信息,如方法数,方法名称?谢谢你的帮助。我们正在获取JS中的函数名称,但我想在我的Java文件中获取这些函数名称。我的意思是我需要一些解决方案,以便我可以遍历我的JS文件,找到函数名称并在我的Java文件中列出它们。是否有任何方法可以链接我的JS文件,它的函数名是否为Java?如果您使用相同的签名(例如,全局函数声明)编写希望从Java访问的所有函数,那么您也许可以。否则,您将使用样式注释,但这两种方法都不可靠。@Eshika-您可能希望将问题更新为“我的Java程序如何处理JS文件以提取函数名?”-并添加“Java”标记。如果您可以将范围缩小到函数声明而不是函数表达式,那么解析应该会更容易一些,尽管嵌套函数可能仍然存在一些问题