这是我的Java Script对象。
HelloObject(server) {
this.server = server;
this.socketio = require("socket.io");
}
HelloObject.prototype = {
constructor: HelloObject,
listen: function() {
this.serverProcess = this.socketio.listen(this.server);
this.serverProcess.sockets.on('connection', this.connect);
},
connect: function(socket) {
}
}
// I am invoking the object
var socketServer = new HelloObject(server)
// Meaning "this" will refer to sockerServer
socketServer.listen()
很抱歉可能是一个愚蠢的问题,我是javascript的新手。 我需要通过"这个"到this.connect函数。 我已经尝试过this.connect.apply(this)以及最终发生的事情是我丢失了套接字对象。
答案 0 :(得分:2)
在回调中,如果你想将connect
绑定到当前对象(this
),那么你需要使用Function.prototype.bind
函数,就像这样
this.serverProcess.sockets.on('connection', this.connect.bind(this));
答案 1 :(得分:1)
您可以使用JavaScript闭包:
var $this = this;
this.serverProcess.sockets.on('connection',function () {
$this.connect();
});