Mozilla Rhino:将 Java 对象添加到范围的不同方法

发布于 2024-08-12 01:58:57 字数 525 浏览 11 评论 0原文

我有这段带有嵌入式Rhino的Java代码(省略了不相关的位):

Context cx = Context.enter();
Scriptable scope = cx.initStandardObjects();

scope.put("foo", scope, Context.toObject(foo, scope));

ScriptableObject.putProperty(scope, "bar", Context.javaToJS(bar, scope));

其中foo扩展了ScriptableObjectbar只是一个POJO,没有一位家长。

在这种特殊情况下,foobar 的添加方式是否有任何区别,或者结果是否相同?

我尝试查阅文档,但找不到任何答案。最终我只是查找了源代码(rhino1_7R1 版本),我的猜测是在这种情况下这并不重要。或者确实如此?

I've got this piece of Java code with embedded Rhino (irrelevant bits omitted):

Context cx = Context.enter();
Scriptable scope = cx.initStandardObjects();

scope.put("foo", scope, Context.toObject(foo, scope));

ScriptableObject.putProperty(scope, "bar", Context.javaToJS(bar, scope));

where foo extends ScriptableObject and bar is just a POJO without a parent.

Is there, in this particular case, any difference between the way foo and bar are added, or is the result the same?

I tried consulting documentation but I couldn't find any answer. Eventually I just looked up the source code (rhino1_7R1 version) and my guess is it doesn't really matter in that scenario. Or does it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

川水往事 2024-08-19 01:58:57

我认为你是对的。我相信我和你经历过同样的代码阅读探险并得出了同样的结论。作用域的顶级对象与作用域的属性是相同的。

I think you are correct. I believe I've been on the same code-reading expedition as you and reached the same conclusion. The top-level objects of the scope are the same thing as the properties of the scope.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文