1

我有一个存储 websocket 连接的 javascript 变量,如下所示:

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吗?我看到一些奇怪的行为,所以试图查明原因。谢谢。

4

1 回答 1

1

您不会将事件绑定到任何变量,而是绑定到它的值 - 其中引用的对象。将新对象分配给变量不会以某种方式自动将这些绑定从旧对象转移到新对象。此外,只要从某处引用此对象旧对象,这些事件将继续触发。

于 2012-06-20T20:31:51.217 回答