当对象被销毁时,const变量会发生什么变化?

时间:2017-10-02 07:28:33

标签: angular memory const

我只是想知道是否一直忠实地遵循tslint是好的,因为它建议我在不重新分配时使用const而不是let(这是有意义的)。虽然我听说过另一个开发人员告诉我使用const是不好的,因为它无法收集垃圾以清除内存。

我希望更好地了解在我的对象中使用const的危险。我在下面的例子中担心它是否在我的Angular App中导致内存泄漏。

E.g。在Angular应用程序中:

import 'rxjs/add/operator/map';

class MyComponentObject {
   constructor(private activatedRoute: ActivatedRoute) {}

   ngOnInit() {
      this.queryParams$ = this.activatedRoute
        .queryParamMap
        .map(params => {

         // is this bad?
         const something = params.get('something') || null;

      })
   }
}

const仍会继续销毁对象(ngDestory)。在这个类的每次初始化时,它会以某种方式在内存中反复建立吗?

所以一般来说这样做可以记住这个吗?

1 个答案:

答案 0 :(得分:2)

const只是意味着您无法重新分配变量。它与垃圾收集无关。

在您的代码段中,当ngOnInit函数终止时,该变量将被销毁。到那时它所具有的价值将有资格进行垃圾收集(除非它在其他地方被引用)。