删除javascript中的引用

删除javascript中的引用,javascript,angularjs,underscore.js,Javascript,Angularjs,Underscore.js,我正在使用AngularJS开发一个javascript应用程序。 目前我有一个变量,它引用了第二个和第三个变量。 在我的例子中,我想删除对第二个的引用,但保留对第三个的引用 所以,我的问题是:如何在javascript/Angular中删除两个变量之间的引用 一些代码示例: // $builder.forms['default'] is the object wich will be changed // $scope.tree is my own variable $scope.tree =

我正在使用AngularJS开发一个javascript应用程序。 目前我有一个变量,它引用了第二个和第三个变量。 在我的例子中,我想删除对第二个的引用,但保留对第三个的引用

所以,我的问题是:如何在javascript/Angular中删除两个变量之间的引用

一些代码示例:

// $builder.forms['default'] is the object wich will be changed
// $scope.tree is my own variable
$scope.tree = $builder.forms['default'];
$builder.forms['default']
绑定到
$scope.tree
并由另一个控制器监视(与显示无关)

此代码将自定义
$builder.forms['default']

$scope.navigateToChildren = function(formObjects) {
        $builder.forms['default'].splice.apply(
            $builder.forms['default'], [
              0, $builder.forms['default'].length
            ].concat(formObjects.children)
        );
};
在这种情况下,我想删除对
$scope.tree
的引用,但让另一个控制器监视它


如果不清楚,请告诉我…

您可以通过设置保存对任何其他值的引用的变量或属性来删除对对象的引用,如果是属性,则通过删除属性来删除对对象的引用

因此,如果有两个对象:

var a = {};
var b = {};
然后,将对
b
的引用指定给
a
中的属性,如下所示:

a.bRef = b;
然后,
a
现在保存对
b
指向的对象点的引用。如果现在清除
b

b = null;
现在,在
a.bRef
中只有一次对
b
的引用。如果要清除对
b
最初指向的对象的最后一个剩余引用,以便该对象有资格进行垃圾收集,可以执行以下任一操作:

a.bRef = null;
delete a.bRef;
a.bRef = "something else";

任何这些都会使
b
最初指向的对象无法被任何实时代码访问。因此,该对象将有资格在下一个GC循环中进行垃圾收集。

您可以通过设置保存对任何其他值的引用的变量或属性来删除对该对象的引用,或者,对于属性,可以通过删除该属性来删除对该对象的引用

因此,如果有两个对象:

var a = {};
var b = {};
然后,将对
b
的引用指定给
a
中的属性,如下所示:

a.bRef = b;
然后,
a
现在保存对
b
指向的对象点的引用。如果现在清除
b

b = null;
现在,在
a.bRef
中只有一次对
b
的引用。如果要清除对
b
最初指向的对象的最后一个剩余引用,以便该对象有资格进行垃圾收集,可以执行以下任一操作:

a.bRef = null;
delete a.bRef;
a.bRef = "something else";

任何这些都会使
b
最初指向的对象无法被任何实时代码访问。因此,该对象将有资格在下一个GC循环中进行垃圾收集。

您可以通过设置保存对任何其他值的引用的变量或属性来删除对该对象的引用,或者,对于属性,可以通过删除该属性来删除对该对象的引用

因此,如果有两个对象:

var a = {};
var b = {};
然后,将对
b
的引用指定给
a
中的属性,如下所示:

a.bRef = b;
然后,
a
现在保存对
b
指向的对象点的引用。如果现在清除
b

b = null;
现在,在
a.bRef
中只有一次对
b
的引用。如果要清除对
b
最初指向的对象的最后一个剩余引用,以便该对象有资格进行垃圾收集,可以执行以下任一操作:

a.bRef = null;
delete a.bRef;
a.bRef = "something else";

任何这些都会使
b
最初指向的对象无法被任何实时代码访问。因此,该对象将有资格在下一个GC循环中进行垃圾收集。

您可以通过设置保存对任何其他值的引用的变量或属性来删除对该对象的引用,或者,对于属性,可以通过删除该属性来删除对该对象的引用

因此,如果有两个对象:

var a = {};
var b = {};
然后,将对
b
的引用指定给
a
中的属性,如下所示:

a.bRef = b;
然后,
a
现在保存对
b
指向的对象点的引用。如果现在清除
b

b = null;
现在,在
a.bRef
中只有一次对
b
的引用。如果要清除对
b
最初指向的对象的最后一个剩余引用,以便该对象有资格进行垃圾收集,可以执行以下任一操作:

a.bRef = null;
delete a.bRef;
a.bRef = "something else";
任何这些都会使
b
最初指向的对象无法被任何实时代码访问。因此,该对象将有资格在下一个GC循环中进行垃圾收集。

我想您需要的是

当你使用Angular时,你可以使用

我想你需要的是

当你使用Angular时,你可以使用

我想你需要的是

当你使用Angular时,你可以使用

我想你需要的是



当你使用角度时,你可以使用

你是说两个物体?你所说的参照物是什么意思?包含相同对象引用的变量?请编写一些代码来演示您的问题。能否显示您的代码?添加了一些代码。。。希望更清楚你指的是两个物体?你所指的参照物是什么意思?包含相同对象引用的变量?请编写一些代码来演示您的问题。能否显示您的代码?添加了一些代码。。。希望更清楚你指的是两个物体?你所指的参照物是什么意思?包含相同对象引用的变量?请编写一些代码来演示您的问题。能否显示您的代码?添加了一些代码。。。希望更清楚你指的是两个物体?你所指的参照物是什么意思?包含相同对象引用的变量?请编写一些代码来演示您的问题。能否显示您的代码?添加了一些代码。。。希望更清楚谢谢你的建议。我已经尝试了
angular.copy()
,但没有成功,因为我需要保留
观察者并删除引用;)谢谢你的建议。我已经尝试了
angular.copy()
,但没有成功,因为我需要保留
观察者并删除引用;)谢谢你的建议。我已经