gpt4 book ai didi

javascript - 当ui-router改变状态时, Angular Controller 范围不会破坏变量

转载 作者:行者123 更新时间:2023-12-01 16:40:11 26 4
gpt4 key购买 nike

在我的应用程序中,我注意到当我更改状态时,$scope 变量仍然存在并超时登录。为什么是这样?我怎样才能完全删除它,使其不占用堆内存?

意思是,在 Controller 状态改变之后

$scope.$on("$destroy",function(){
setTimeout(function(){
console.log($scope.whatever);
},10000);
});

$scope.whatever 仍然记录意味着它从未被删除!到底是怎么回事?我以为销毁事件也会销毁范围内的所有内容?

最佳答案

这样做的原因是,通过 console.logging 超时时的 $scope 变量,我正在引用它,因此 javascript 将避免范围内的垃圾收集,直到它执行并且不再被引用,javascript 中没有弱引用就像在 java 中一样。

应该不惜一切代价避免这种情况,因为它会在 angular 中造成大量内存泄漏!当作用域被销毁时,确保在任何地方都没有引用变量!

关于javascript - 当ui-router改变状态时, Angular Controller 范围不会破坏变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37177059/

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