我一直在查看 Rhino文档和源代码以获取有关如何实现我自己的全局本机函数的线索。然而,这项任务比我预期的要复杂。
在阅读了RingoJS 中函数实现的代码require
后,我相信我需要按照以下几行来做一些事情:
import org.mozilla.javascript.BaseFunction;
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.Context;
public class MyGlobalNativeFunction extends BaseFunction {
public MyGlobalNativeFunction() {}
public Object call(Context cx, Scriptable scope, Scriptable thisObj, Object[] args) {
// implementation of my function
}
public int getArity() {
return 1;
}
}
我在正确的轨道上吗?关于如何实现这一点的逐步演练会很棒。
如果我可以使用 Rhino 的defineClass
函数来创建我的全局原生函数,那就太好了。我不太热衷于推出我自己的修改版 Rhino,只是因为我想实现一个本机功能。