如果我为JS变量分配一个新值,它是否会破坏它的绑定?

时间:2012-06-20 20:14:16

标签: javascript javascript-events

我有一个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上的绑定事件吗?我看到一些奇怪的行为,所以试图找出原因。感谢。

1 个答案:

答案 0 :(得分:1)

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