如何将对象的所有引用指向另一个对象?

时间:2016-02-23 21:35:00

标签: javascript firefox-addon

我有对象a。对象a有几个引用它的引用,但我不知道它们是什么。我打算销毁对象a,但首先我要将其所有引用指向一个新对象b

如果我可以确定对象a的所有引用,则可以采用一种方式(如果可能),我可以明确地将它们重新分配给b。但是,我还没有找到确定对象引用的方法。

或者还有其他一些解决方案来实现这个目标吗?

编辑:

以下是该方案:

在Firefox中,我在DOM(tabbrowser选项卡)中有一个元素,它将从DOM中移除而另一个元素放在其位置,这将保存将选项卡恢复到原始选项卡状态所需的数据选项卡已恢复(这是"卸载"标签的常用方法)。但是,其他对象具有对选项卡的引用,并且只是从DOM中删除选项卡会破坏这些引用,有时也会破坏其他位置的代码功能。我想将旧选项卡的所有引用都指向新选项卡。

编辑2:

Firefox具有原生方法addTabremoveTab。我正在使用这两种方法,removeTab删除一个标签,这将从DOM中删除它(除了其他事项,而不试图提供有关Firefox&tabburowser-tab模型的深入教程),然后我将使用addTab方法在其位置放置一个新选项卡,这将创建一个新的选项卡元素并将其添加到DOM。这是一个全新的对象,因此我希望指向旧选项卡的引用现在指向新选项卡。

我不知道在这种情况下简单地指定a = b是否有效,因为tabbrowser-tabs非常复杂。

1 个答案:

答案 0 :(得分:1)

除非您进行某种手动跟踪,否则无法确定对象所持有的引用。

例如,DOM在插入元素时设置各种指针的各种指针......

  • <element>.parentNode
  • <element>.firstChild
  • <element>.nextSiblingNode

和其他许多人。

从DOM中删除对象时,这些引用都是手动更新的,但在幕后。