如何在rhino javascript中将对象属性添加到全局对象

2024-02-02

我想将对象中的一些属性添加到全局命名空间中。在浏览器上的 javascript 中,我可以将其添加到window像这样的对象:

var myObject = {
  foo : function() {
    alert("hi");
  }
  // and many more properties
};

for (property in myObject) {
  window[property] = myObject[property];
}

// now I can just call foo()
foo();

但由于 rhino 没有全局窗口对象,我无法做到这一点。是否有等效的对象或其他方法来实现此目的?


我找到了一个相当出色的解决方案NCZ在线 http://www.nczonline.net/blog/2008/04/20/get-the-javascript-global/:

function getGlobal(){
  return (function(){
    return this;
    }).call(null);
}

该函数的关键在于,无论何时使用,this 对象始终指向全局对象call() or apply()并传入 null 作为第一个参数。由于空范围无效,因此解释器会插入全局对象。该函数使用内部函数来确保范围始终正确。

呼叫使用:

var glob = getGlobal();

glob然后将返回[object global]在犀牛中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在rhino javascript中将对象属性添加到全局对象 的相关文章

  • 在 javascript 原型事件处理程序中保留“this”引用[重复]

    这个问题在这里已经有答案了 正确的保存方法是什么this存储在对象原型内的事件处理程序中的 javascript 引用 我不想创建像 this 或 that 这样的临时变量 而且我不能使用像 jQuery 这样的框架 我看到很多人谈论使用
  • 为什么 useReducer 调度会导致重新渲染?

    假设我实现一个简单的全局加载状态 如下所示 hooks useLoading js import React createContext useContext useReducer from react const Context crea
  • JavaScript 支持逐字字符串吗?

    在 C 中 您可以像这样使用逐字字符串 server share file txt JavaScript中有类似的东西吗 模板字符串支持换行 so you can do this if you want https developer mo
  • 节点遗留 url.parse 已弃用,用什么代替?

    require url parse someurl com page 已被仅弃用 并且我们严格的 linter 对此不满意 我尝试用互联网建议的内容替换我们的代码中的它new URL someurl com page 在大多数情况下都有效
  • jQuery JSONP ajax,未设置身份验证标头

    我正在尝试使用以下设置向 google 联系人 API 发出 ajax 请求 ajax url https www opensocial googleusercontent com api people me all dataType js
  • 在 ajax 请求上启用 jQuery contextMenu 项

    我正在尝试更新上下文菜单 http medialize github com jQuery contextMenu docs htmlitem 如果 ajax 请求改变了我的 div 内容 这就是我的意思 我有一个这样的 div div c
  • 在 React 组件中等待异步函数并显示 Spinner

    初学者在这里 尝试从服务器获取一些数据并在获取后将其显示在我的反应组件中 但是 我在将异步函数集成到我的反应组件中时遇到了麻烦 import React useState from react import request from gra
  • 网络上的等角柱状图

    我计划为游戏的标记 图钉 构建在线地图 但我无法设置标记的正确纬度 原始地图是一个2048 2048px 的正方形 然后我得到了标记 数千个 地图坐标使用 0 到 100 之间的 x y 表示法设置 0 0 是top left角和100 1
  • 如何正确地将节点从引用传递到上下文?

    我正在尝试将节点从引用传递到上下文 但是因为我在第一次渲染后没有重新渲染 所以传递的节 点是null 我考虑了两种变体 但我认为它们不是最好的 To pass ref代替ref current 但在用例中 我将被迫使用类似的东西contex
  • 使用 babel env 预设时,展开运算符出现语法错误

    我正在努力 现代化 meern io 入门样板 https github com Hashnode mern starter通过替换巴别塔es2015 and stage 0预设为env 然而 似乎env预设无法识别以下片段client m
  • ASP.NET 验证控件和 Javascript 确认框

    我有一个使用 NET 服务器端输入验证控件的页面 此页面还有一个 javascript 确认框 在提交表单时会触发该确认框 当前 当选择 提交 按钮时 会出现 javascript 确认框 一旦确认 就会触发 ASP NET 服务器端验证控
  • 仅从功能区打开一个对话框

    我有一个带有登录按钮的功能区 可打开登录对话框 我想将对话框的数量限制为一个 我正在使用函数 displayDialogAsync startAddress options callback https learn microsoft co
  • 插件 gulp-babel 错误:插件/预设文件不允许导出对象,只能导出函数

    我现在尝试在我的 Ionic v1 应用程序中使用 JavaScript 2015 ES6 包 json name test version 1 0 0 dependencies ionic native deeplinks 4 18 0
  • 修复 Raphaël 路径节点上 Tipsy 工具提示的位置

    这是一个非常具体且有些复杂的问题 所以我设置了一个最小测试用例 http reveal dk 8080 revealit dk tipsytest 在阅读本文的其余部分之前 您可能应该先了解一下 我的页面显示悬停时突出显示区域的图像Raph
  • 等待异步 grunt 任务完成

    我收到了 grunt 设置 其中一个新任务应该执行 grunt task run 已经存在的任务 要执行的任务是异步的 新任务应该等待异步任务完成 执行此操作的首选方法是什么 grunt 已经涵盖了这一点 你应该将你的任务声明为异步任务 并
  • 文件缓存:查询字符串与上次修改时间?

    我正在研究缓存网站资源的方法 并注意到大多数与我类似的网站都使用查询字符串来覆盖缓存 例如 css style css v 124942823 后来 我注意到每当我保存 style css 文件时 最后修改的标头都会 更新 使得查询字符串变
  • 为什么浏览器允许onmousedown JS改变href?

    我很长时间以来都注意到 当您尝试复制链接位置或在 Facebook 上打开链接时 它会修改链接并将其传递给l php 例如 我可以被发送到 http www facebook com l php u http 3A 2F 2Fwww goo
  • 将默认搜索文本添加到搜索框 html

    我正在努力将 搜索 文本添加到搜索框 我正在努力实现 onfocus 消失文本 And onblur 重新出现文本 到目前为止 我已经实现了这一点 但我必须将其硬编码为 html eg
  • 如何得知客户端从服务器的下载速度?

    根据客户的下载速度 我想以低质量或高质量显示视频 任何 Javascript 或 C 解决方案都是可以接受的 Thanks 没有任何办法可以确定 您只能测量向客户端发送数据的速度 如果没有来自客户端的任何类型的输入来表明其获取信息的速度 您
  • 使用严格模式编译指示时如何声明全局变量

    使用自调用函数来包装严格模式兼容代码 通常称为严格模式编译指示 被认为是一种很好的做法 function use strict Strict code here 我的问题是在这种情况下如何声明全局变量 我今天知道的三种替代方案 替代方案 1

随机推荐

  • OS X 中每个 WebView 都有单独的 cookie jar

    我一直在努力实现在 macOS 中为每个 WebView 拥有一个唯一 非共享 cookie jar 的目标 iOS 的 cookie 管理工作方式不同 在阅读了大量 StackOverflow 问题并深入研究文档后 我在这些文章中找到了最
  • 在 Expression 中注入 TDelegate 的参数值并减少表达式

    我需要减少一个表达式 Expression
  • numba @jit 比纯 python 慢吗?

    所以我需要改进我一直在处理的脚本的执行时间 我开始使用 numba jit 装饰器来尝试并行计算 但是它让我困惑 KeyError Does not support option parallel 所以我决定测试 nogil 是否解锁了我的
  • 在 Cloud Spanner 中存储 UUID

    我想在 Cloud Spanner 中使用 UUID 作为主键 读写 UUID 的最佳方式是什么 是否有 UUID 类型或客户端库支持 最简单的解决方案是将其存储为标准中的 STRINGRFC 4122 https www rfc edit
  • Java - 等待第三方线程完成

    我有一个线程将运行第三方库 该第三方库也将运行自己的线程 当我的线程的 run 方法完成时 第三方线程还没有完成 那么 在这些外部线程仍在运行之前保持线程的最佳方法是什么 If你是一个应用程序 不必担心SecurityManager的限制
  • 使用按位运算将 Int 转换为 Float 或 Float 转换为 Int(软件浮点)

    我想知道您是否可以帮助解释将整数转换为浮点数或将浮点数转换为整数的过程 对于我的课程 我们将仅使用按位运算符来完成此操作 但我认为对从类型到类型的转换的深入理解将在这个阶段对我有更多帮助 据我所知 到目前为止 对于 int 到 float
  • 捕获 VPN 使用统计数据

    我们正在使用 NET 2 0 中的 NetworkInterface GetIPv4Statistics 来监视网络接口的使用统计信息 这不会报告 VPN 流量通过隧道传输的连接的正确统计信息 相反 对于 Cisco VPN 客户端 其使用
  • 编译器优化掉的变量

    我开始调试一些代码试图找出我的错误 当我尝试p tlEntries从调试器我得到
  • 将 decltype 与成员函数指针结合使用

    我使用时遇到一些问题decltype对于成员函数指针 include
  • 转义 findstr 搜索字符串中的引号

    使用 findstr exe 时如何正确转义搜索字符串中的引号 Example findstr misc namespace cs gt ns txt 这会输出到控制台 而不是我指定的文件 我直接在命令行上执行此操作 而不是实际上在批处理文
  • 在 NHibernate 中删除对象时,“not-null 属性引用 null 或瞬态值”

    我创建了一个 MVC 4 并使用 NHibernate 来持久化模型并使用 Fluent nhibernate 映射它 该实体有一个 Name 属性 并按如下方式映射 Map x gt x Name Not Nullable Length
  • Cocoapods Firebase Pod 更新

    早上好 我在更新 Firebase Analytics 和 Firebase Core pod 时遇到问题 我的 Pod 文件 source https github com CocoaPods Specs git source https
  • 写入易失性变量后会发生什么?

    我想知道写入易失性变量是否会强制jvm将所有非易失性变量同步到内存 例如 以下代码中会发生什么 volatile int x int y y 5 x 10 x 将被写入内存 但是 y 会发生什么 它也会被写入内存吗 是的 根据规则Java
  • 使用多列交叉应用动态 SQL 逆透视数据

    微软 SQL Server Management Studio v18 8 我有一个表 其中有不同的列和列名称 我需要对数据进行逆透视 以便最终可以将其存储到另一个表中 不幸的是 这是一个过程 因为原始表格是从 Google 表格中提取的
  • 如何减慢动画播放速度?

    我有动画矩形jsFiddle 演示 http jsfiddle net kHvaX 如何减慢动画速度并使其更稳定 我尝试使用循环延迟 但延迟循环和 requestAnimationFrame 之间存在冲突 我不想改变参数window set
  • 使用 java 查询 MySQL 数据库

    伙计们 简单地说 我有一个带有文本输出框的java应用程序 我想查询数据库并将输出显示到文本框中 示例我有一个包含两列的数据库food and color 我想 SELECT in Table WHERE color blue 有什么建议么
  • 为什么我的 tempdb 在服务器重新启动时会重置权限?

    过去两次我们重新启动 SQL Server 我们的网站就瘫痪了 原因似乎是因为 tempdb 正在重新创建 并且 ASPState 用户失去了读 写 tempdb 的权限 它是 ASP 站点 会话数据存储在 sql server 中 直到大
  • 编写 jax-ws Web 服务并生成 WSDL,无需 XSD

    我在java上为tomcat应用程序服务器编写了一个简单的JAX WS Web服务 我有一个接口和实现类 界面 WebService name myWs SOAPBinding style Style RPC public interfac
  • R:不同日期的栅格图层之间的插值

    假设我有 4 个具有相同扩展的栅格图层 其中包含 4 个不同年份的数据 2006 2008 2010 和 2012 library raster r2006 lt raster ncol 3 nrow 3 values r2006 lt 1
  • 如何在rhino javascript中将对象属性添加到全局对象

    我想将对象中的一些属性添加到全局命名空间中 在浏览器上的 javascript 中 我可以将其添加到window像这样的对象 var myObject foo function alert hi and many more properti