gpt4 book ai didi

javascript - 完全摧毁物体

转载 作者:行者123 更新时间:2023-11-28 19:24:47 25 4
gpt4 key购买 nike

我正在研究 angularjs $modal。我将值存储在 Controller 中,如下所示,

 if($scope.mediacontent){
delete $scope.mediacontent;}
$scope.mediacontent[$scope.slider_url] =media_data;
$scope.mediacontent[$scope.slider_url][img_no].active=true;

现在,当下次打开 $modal 时,我想销毁媒体内容对象,但使用 delete 对象不会完全销毁。

如何完全销毁删除$scope.mediacontent对象。

最佳答案

(我假设 JAAulde 指出的 syntaxother errors 并不真正存在于您的代码中,或者您已经修复了它。)

but with delete Object is not destroyed Completely...

delete 不会释放对象;它会删除属性。如果您要删除的属性是对该对象的唯一引用,则该对象将符合垃圾回收的条件。实际垃圾收集何时以及如何发生取决于 JavaScript 引擎(不太可能立即发生)。如果您有对该对象的其他引用,则删除该属性不会使其符合 GC 条件(因为有其他对它的引用)。

但是,如果您要为该属性分配新值,则没有理由删除;分配新值还会释放对前一个对象的引用,使其符合 GC 的条件(假设没有其他对象引用它)。

例如,此代码将完全释放旧对象(除非其他对象引用了它):

$scope.mediacontent = {};
$scope.mediacontent[$scope.slider_url] = media_data;
$scope.mediacontent[$scope.slider_url][img_no].active = true;

...因为第一行用新创建的对象的引用替换了对旧对象的引用。

关于javascript - 完全摧毁物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28068046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com