这个 Node.js 代码中的 'on' 方法是 JavaScript 方法还是 Node 方法?

47

我在谷歌上找不到答案,因为“on”是一个常见单词。 在这个node.js的例子中:

conn.on('close', function() {
var pos =   connections.indexOf(conn);
    if (pos >= 0) {
        connections.splice(pos, 1);
    }
});

有一个.on方法。它是做什么的?这是 JavaScript 的方法吗?还是仅限于在 node 中使用?我有点困惑,因为我认为在 jQuery 中看到了类似 .on的东西。它是否类似于 jQuery 的.live事件处理程序?

有人能解释一下吗?


1
一切都是JavaScript方法。它是Node API的一部分,与jQuery完全无关。 - Raynos
4个回答

37

18
在这种情况下,on是一个节点方法。jQuery也有一个同名的方法,它们基本上用于相同的目的——通过它们的字符串名称绑定事件处理程序到事件上。实际上,它们的签名看起来对我来说是完全一样的,如果我没记错的话。
纯JavaScript没有这样的方法。

4

对于那些寻求简单解释的人,它是节点本地实现,并且是addListener(evtName, func)的别名。 在这里查看API


2

你可能知道,Node.js是事件驱动的,因此像jQuery或Backbone一样监听事件(发布-订阅)。

在Node.js中,通常使用'on'或其他函数绑定函数来监听事件。

来自Node.js文档:

例如net.Server每次与对等方连接时发出一个事件, fs.readStream在文件打开时发出一个事件。所有发出事件的对象都是events.EventEmitter的实例。您可以通过执行以下操作访问此模块:require("events");


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接