我有一个javascript变量,它存储一个websocket连接,如下所示:
var ws = $.websocketSettings.factory(url);
$(ws)
.bind('open', $.websocketSettings.open)
.bind('close', $.websocketSettings.close)
.bind('message', $.websocketSettings.message)
.bind('error', $.websocketSettings.error)
.bind('relaySent', $.websocketSettings.relayTimeout)
.bind('relayRetry', $.websocketSettings.relayRetry)
.bind('jumpStart', $.websocketSettings.jumpFactory);
但是,如果连接断开,我会发生jumpStart
事件,使用新连接重置ws
变量。
jumpFactory: function(event){
var ws = this;
ws = $.websocketSettings.factory( getEngineUrl() );
return ws;
},
这会打破ws
上的绑定事件吗?我看到一些奇怪的行为,所以试图找出原因。感谢。
答案 0 :(得分:1)
您不会将事件绑定到任何变量,而是绑定到其值 - 其中引用的对象。将新对象分配给变量不会以某种方式自动将这些绑定从旧对象转移到新对象。此外,只要从某处引用此对象旧对象,这些事件将继续触发。