首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将全局对象传入ScriptObjectMirror.unwrap

将全局对象传入ScriptObjectMirror.unwrap
EN

Stack Overflow用户
提问于 2015-12-08 00:59:52
回答 1查看 372关注 0票数 4

ScriptObjectMirror有一个接受Global对象的unwrap方法。问题是,我不知道如何发送全局对象,因为似乎没有一种容易的方法来访问它。这意味着我总是得到镜像,而不是原始对象(从ScriptObjectMirror.class解压缩代码):

代码语言:javascript
复制
public static Object unwrap(Object obj, Object homeGlobal) {
    if(obj instanceof ScriptObjectMirror) {
        ScriptObjectMirror mirror = (ScriptObjectMirror) obj;
        return mirror.global == homeGlobal ? mirror.sobj : obj;
    } else {
        return obj instanceof JSONListAdapter?((JSONListAdapter)obj).unwrap(homeGlobal):obj;
    }
}

如何传递正确的全局对象?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-25 19:21:55

在Nashorn中,您不能从外部上下文中展开ScriptObjectMirror实例。也就是说,如果当前全局对象( JavaScript“全局”对象)与正在展开的对象的全局对象不相同,那么纳什霍恩将不会打开它。似乎也没有一种方法来访问JavaScript对象的当前全局。

有一个ScriptUtils#unwrap不接受全局的,但它也显示了相同的行为。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34146215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档