如何完全擦除类的实例

时间:2019-04-05 08:01:29

标签: javascript typescript

我想知道当在数组中启动某个类的实例时,如何完全擦除它的实例。

我已经看到了有关如何删除Javascript实例的一些答案,这个问题似乎与我要寻找的内容非常接近:How to destroy the instance of a JavaScript class completely?,但是我不确定是否理解它,或者如果与我的问题有关。如果可能的话,我希望您能得到更详细的答案(我对Javascript / Typescript有点陌生)。

举一个我的意思的例子,我有一个像这样的类:

class Person {
  private _id: number;
  private _name: string;
  private _surname: string;
  public has_dog: boolean;

  constructor(ID:number, name:string, surname:string, has_dog:boolean) {
    this._id = ID;
    this._name = name;
    this.surname = surname;
    this.has_dog = has_dog;
  }

我正在创建这样的新实例:

let my_array: Person[];
my_array.push(new Person(123,'John', 'Smith', true));

现在,在某些时候,我可能希望删除其中的一个Person实例,但是我不确定是否通过使用my_array.pop()(如果要删除最后一个人),我会完全从内存中删除该实例,或者该实例将漂浮在某个地方。

如果我一切都很好,只要在代码的其他任何地方都没有使用该变量(实例),则垃圾收集器应该处理它,但是我不确定这是否正确,或者我是否可以使某些实例“处于活动状态”时会出现一些内存问题。

总而言之,这是从数组中删除类的那些实例的最合适,最有效的方法吗?

谢谢

0 个答案:

没有答案