ECMA JavaScript 规范将该语言描述为面向对象的编程语言,用于在主机环境中执行计算和处理计算对象。每个用 JavaScript 编写的应用程序都需要一个主机环境,它提供特定于环境的对象和 API 来执行 I / O。 Ringo 为 JavaScript 提供了这样一个环境,并附带一组模块以使应用程序开发更容易。由于其作为通用编程语言的特性,JavaScript 可以用来解决各种各样的问题,而 Ringo 可以帮助您这么做。利用 Ringo,编写命令行工具,复杂的 Web 应用程序甚至基于 Java UI 技术的 GUI 应用程序都很容易。
脚本语言如 JavaScript 需要一个引擎来解释和执行程序。 Ringo 没有自己的引擎。相反,它使用 Mozilla Rhino,一种 Java 中的 JavaScript 实现。犀牛的最初发展始于 Netscape 时代,并一直持续到现在。基本思想是将 JavaScript 程序编译为 Java 字节码,Java 字节码可以由 Java 虚拟机(JVM)执行。犀牛还提供了对 Java 标准类库和其他每个 Java 类的轻松访问。这使得将现有的 Java 库集成到新的 JavaScript 应用程序变得很容易。例如:Ringo 不是编写自己的 I / O 系统,而是使用现有的 Java I / O 类,并将它们封装起来以提供从 JavaScript 更容易的访问。
Ringo 在服务器或专用机器上执行 JavaScript,而不是在 Web 浏览器上下文中执行。如果您已经从基于 HTML 的应用程序中了解 JavaScript,则这是主要区别。没有什么像一个窗口对象,你没有一个 DOM 来操纵 HTML 对象。尽管如此,很多事情会像你从浏览器中知道的那样。您可以使用 console.log() 调试到控制台,但也有专用的日志记录模块可用于更复杂的日志记录。
Ringo 最大的优势之一就是模块系统。 Ringo 并没有自己构建代码,而是拥有一个易于使用的模块系统。它基于 CommonJS 模块,这是用于保持代码可互换的服务器端 JavaScript 环境的规范。如果您了解 Node.js 的模块,您还知道如何在 Ringo 中编写模块。一个模块封装了 JavaScript 方法和变量,并将它们与其他模块隔离。
提供对 Rhino JavaScript 引擎的访问。
将一个类定义为 Rhino 主机对象。
Parameters
JavaClass | javaClass | the class to define as host object |
将存储库添加到模块搜索路径
Parameters
Repository | repo | a repository |
当当前的 RingoJS 实例终止时,注册一个要调用的回调函数。
Parameters
Function|Object | funcOrObject | Either a JavaScript function or a JavaScript object containing properties called |
Boolean | sync | (optional) whether to invoke the callback synchronously (on the main shutdown thread) or asynchronously (on the worker's event loop thread) |
获取将它作为 Java 对象公开为 JavaScript 的对象的包装器。
Parameters
Object | object | an object |
Returns
Object | the object wrapped as native java object |
获取将 java.lang.String 方法公开给 JavaScript 的字符串的包装器这对于以无 java.lang.String 的形式访问字符串非常有用,无需创建新实例。
Parameters
Object | object | an object |
Returns
Object | the object converted to a string and wrapped as native java object |
使用与此相同的安装目录创建一个Sandbox脚本引擎,以及给定的模块路径,全局属性,类shutter和密封
Parameters
Array | modulePath | the comma separated module search path |
Object | globals | a map of predefined global properties (may be undefined) |
Object | options | an options object (may be undefined). The following options are supported:
|
Returns
RhinoEngine | a sandboxed RhinoEngine instance |
Throws
{FileNotFoundException} if any part of the module paths does not exist
获取与当前线程或给定范围或函数对象关联的worker实例。
Parameters
Object | obj | optional scope or function to get the worker from. |
Returns
org.ringojs.engine.RingoWorker | the current worker |
获取包含当前worker中遇到的语法错误的列表
Returns
ScriptableList | a list containing the errors encountered in the current worker |
获取当前线程和上下文的 Rhino 优化级别。优化级别是-1(解释器模式)和 9(编译模式,所有优化启用)之间的整数。默认级别是 0。
Returns
Number | level an integer between -1 and 9 |
获取应用程序的模块搜索路径作为存储库列表。
Returns
ScriptableList | a list containing the module search path repositories |
获取与当前线程关联的 org.mozilla.javascript.Context。
获取与此应用程序关联的 org.ringojs.engine.RhinoEngine。
Returns
org.ringojs.engine.RhinoEngine | the current RhinoEngine instance |
获取 RingoJS 安装目录。
Returns
Repository | a Repository representing the Ringo installation directory |
获取一个新的worker实例。
Returns
org.ringojs.engine.RingoWorker | a new RingoWorker instance |
为当前线程和上下文设置 Rhino 优化级别。优化级别是 -1(解释器模式)和 9(编译模式,所有优化启用)之间的整数。默认级别是 0。
Parameters
Number | level | an integer between -1 and 9 |
RingoJS 版本是一个类似数组的对象,主要和次要版本号作为第一个和第二个元素。