我一直在尋找的犀牛documentation和source code的線索就如何實現自己的全球原生功能。然而,這項任務比我預期的要複雜得多。如何在犀牛創建的本機的功能呢?
閱讀require
功能的RingoJS實施,我相信我需要做的大意如下的東西的code後:
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
函數來創建我的全球原生功能。我不是推出犀牛我自己修改過的版本,只是因爲我想要實現一個本地函數過於激烈。
我假設'scope'是全球範圍內,對不對?我在哪裏實例化它,以及如何訪問'範圍'?我看到'RingoGlobal'有一個叫'init'的方法。 –