ES6:如何在类中将实例设置为null?

时间:2017-10-24 23:49:15

标签: javascript ecmascript-6

我需要使用

if (instanceOfClass === null){
    // ...
}

instanceOfClass变量在脚本期间动态变为null,然后在必要时分配新实例。另外,我不想写instanceOfClass = null:如果类会在相应的方法中销毁它的实例本身,它会更优雅:

SomeClass{

    // ...

    cancelOperation(){
        this = null; // don't work
    }
}

instanceOfClass = new SomeClass();
instanceOfClass.cancelOperation();
instanceOfClass = new SomeClass();

我需要编写什么而不是this = null;才能使其正常工作?

1 个答案:

答案 0 :(得分:2)

从内部销毁一个类是不好的做法,相反,如果你想分配一个新实例,可以使用一个标志来标记该类已准备好被删除。

MyClass {
  readyToBeDeleted: boolean = false;

  cancelOperation() {
    this.readyToBeDeleted = true;
  }
}

然后从外部检查并在需要时重新分配:

if (myClass.readyToBeDeleted) {
  myClass = new MyClass();
}