【脚本语言JavaScript】Ringo JS-模块 ringo/events

Ringo 是一个 JavaScript 平台

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 方法和变量,并将它们与其他模块隔离。

模块 ringo/events

导出一个 EventEmitter 类,该类提供了用于发出事件和注册事件listener函数的方法。

Class EventEmitter

Instance Methods

Class JavaEventEmitter

Instance Methods

Instance Properties


EventEmitter ()

此类提供了一些方法来发出事件并添加或删除事件listener。

EventEmitter 函数可以用作构造函数或混合使用。使用 new 关键字构造一个新的 EventEmitter:

var emitter = new EventEmitter();

要将事件处理方法添加到现有对象,请使用以下对象调用或应用 EventEmitter 函数:

EventEmitter.call(object);

EventEmitter.prototype. emit (type, [args...])

向所有为此事件类型注册的listener发出一个事件

Parameters

Stringtype

type the event type

...[args...]

optional arguments to pass to the listeners

Returns

 

true if the event was handled by at least one listener, false otherwise

Throws

如果事件类型为“错误”且没有listener,则会出错


EventEmitter.prototype. listeners (type)

获取包含给定事件的listener函数的数组。 如果给定事件不存在listener,则创建一个新数组。 返回值的变化将反映在EventEmitter实例中。

Parameters

Stringtype

the event type

Returns

Array

the lister array


EventEmitter.prototype. on (type, listener)

为给定事件添加一个listener函数。这是 addListener() 的快捷方式

Parameters

Stringtype

the event type

Functionlistener

the listener

Returns

EventEmitter

this object for chaining


EventEmitter.prototype. removeAllListeners (type)

删除给定事件的所有listener函数。

Parameters

Stringtype

the event type

Returns

EventEmitter

this object for chaining


EventEmitter.prototype. removeListener (type, listener)

删除给定事件的listener函数。

Parameters

Stringtype

the event type

Functionlistener

the listener

Returns

EventEmitter

this object for chaining


JavaEventEmitter (classOrInterface, eventMapping)

将事件分派给 Ringo 的适配器。该类将一个 Java 类或接口作为参数,并创建一个 Java 对象来扩展或实现类或接口,并将方法调用转发给使用 EventEmitter 方法注册的事件listener函数。

像 EventEmitter一样, JavaEventEmitter可以用作构造函数或混合使用。使用 new 关键字构造一个新的 JavaEventEmitter:

var emitter = new JavaEventEmitter(JavaClassOrInterface);

要将事件处理方法添加到现有对象,请使用以下对象调用或应用 JavaBeanEventEmitter 函数:

JavaEventEmitter.call(object, JavaClassOrInterface);

JavaEventEmitter 接受一个对象作为可选的第二个参数,将 Java 方法映射到事件名称。如果第一个参数是 Java 类,则此映射还允许选择应覆盖哪些方法。如果在没有事件映射的情况下调用,方法名称将用作事件名称,除了像触发事件 foo 的 onFoo 之类的方法。

Parameters

java.lang.Class|ArrayclassOrInterface

a Java class or interface, or an Array containing multiple Java interfaces.

ObjecteventMapping

optional object mapping method names to event names. If this parameter is defined only methods whose name is a property key in the object will be overridden, and the event type will be set to the property value instead of the method name.


JavaEventEmitter.prototype. addListener (type, listener)

为给定事件添加一个listener函数。该函数将在本地事件循环的线程上异步调用。

Parameters

Stringtype

the event type

Functionlistener

the listener


JavaEventEmitter.prototype. addSyncListener (type, listener)

为给定事件添加一个同步listener函数。同步listener将由外部线程调用,而不是本地事件循环的线程。这意味着可以在该工作人员运行其他代码时同时调用它。

Parameters

Stringtype

the event type

Functionlistener

the listener


JavaEventEmitter.prototype. emit (type, [args...])

向所有为此事件类型注册的listener发出一个事件

Parameters

Stringtype

type the event type

...[args...]

optional arguments to pass to the listeners

Returns

 

true if the event was handled by at least one listener, false otherwise

Throws

如果事件类型为“错误”且没有listener,则会出错


JavaEventEmitter.prototype. impl

生成的 Java 对象。这实现了传递给 JavaEventEmitter 构造函数的 Java 接口,并且可以传递给期望给定接口的 Java 代码。


JavaEventEmitter.prototype. on (type, listener)

为给定事件添加一个listener函数。这是 addListener() 的快捷方式。

Parameters

Stringtype

the event type

Functionlistener

the listener


JavaEventEmitter.prototype. removeAllListeners (type)

删除给定事件的所有listener函数。

Parameters

Stringtype

the event type


JavaEventEmitter.prototype. removeListener (type, listener)

删除给定事件的listener函数。

Parameters

Stringtype

the event type

Functionlistener

the listener

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值