Javascript 如何将socket.io(在nodejs中)的事件处理程序绑定到我自己的作用域?

Javascript 如何将socket.io(在nodejs中)的事件处理程序绑定到我自己的作用域?,javascript,events,scope,node.js,socket.io,Javascript,Events,Scope,Node.js,Socket.io,我正在nodejs服务器中使用“socket.io”。是否有办法在我的类/模块的范围内(在浏览器中)运行已注册的事件函数 我认为V8支持“bind()”函数: this.socket.on('connect', this.myConnect.bind(this)); 对“bind”的调用将返回一个函数,该函数将调用您的函数,从而将this设置为您传递的参数(在本例中,从调用该“init”函数的上下文中设置this) 编辑—“bind()”在Chrome中的函数原型中,所以我认为它在node中可

我正在nodejs服务器中使用“socket.io”。是否有办法在我的类/模块的范围内(在浏览器中)运行已注册的事件函数

我认为V8支持“bind()”函数:

this.socket.on('connect', this.myConnect.bind(this));
对“bind”的调用将返回一个函数,该函数将调用您的函数,从而将
this
设置为您传递的参数(在本例中,从调用该“init”函数的上下文中设置
this

编辑—“bind()”在Chrome中的函数原型中,所以我认为它在node中可以正常工作

以下是您可以在浏览器中尝试的内容(一个具有可用功能的浏览器,如Chrome):


我已经在我的YUI3环境中用

this.socket.on('connect', Y.bind(this.myConnect, this));

多亏了Pointy的“绑定”一词。

不幸的是,我没有Chrome来测试它,而且它在Firefox中也不起作用。还有别的方法吗?你真的应该试试Chrome——它是一款很好的浏览器,速度也很快:——)可能是,但我知道仍在使用IE6的用户。我不能订购。但是你说你在nodejs服务器中使用socket.io,现在你说客户端代码需要这个?我是说“使用”。所以我在服务器和客户机上使用它。
 var f = (function() { alert(this); }).bind("hello world");
 f();
this.socket.on('connect', Y.bind(this.myConnect, this));