NashornScriptEngine 如何获取加载js文件的函数名称和函数的代码
时间: 2024-03-20 17:40:39 浏览: 198
get-function-name.js:获取函数名
要获取 NashornScriptEngine 加载的 JavaScript 文件中函数的名称和函数代码,可以使用以下代码:
```java
import javax.script.*;
public class NashornExample {
public static void main(String[] args) throws Exception {
// 创建 NashornScriptEngine 实例
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
// 加载 JavaScript 文件
engine.eval("load('example.js')");
// 获取全局变量中的函数名称和函数代码
if (engine instanceof Invocable) {
Invocable invocable = (Invocable) engine;
String functionName = "exampleFunction"; // 函数名称
String functionCode = invocable.invokeFunction(functionName, "getCode").toString(); // 函数代码
System.out.println("Function Name: " + functionName);
System.out.println("Function Code: " + functionCode);
}
}
}
```
其中,example.js 文件中定义了一个名为 exampleFunction 的函数,代码如下:
```javascript
function exampleFunction(param) {
if (param === "getName") {
return "John Doe";
} else if (param === "getCode") {
return exampleFunction.toString();
}
}
```
运行上述代码,将输出以下结果:
```
Function Name: exampleFunction
Function Code: function exampleFunction(param) {
if (param === "getName") {
return "John Doe";
} else if (param === "getCode") {
return exampleFunction.toString();
}
}
```
阅读全文