javascript - ES6 : how to set the instance to null inside class?

标签 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; 才能让它工作?

最佳答案

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

MyClass {
  readyToBeDeleted: boolean = false;

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

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

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

关于javascript - ES6 : how to set the instance to null inside class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46921722/

相关文章:

javascript - react : TypeError: Cannot read property 'setState' of undefined

node.js - NodeJS 异常 Require - 这是怎么回事?

javascript - 需要帮助更改函数中 SVG 的颜色 - Skycons

javascript - Promise.all 的类型定义与文档不匹配

javascript - 使用 JavaScript,是否可以检测嵌入式 Flash 对象何时停止传输音频/视频?

javascript - 如何判断文本框在C#中是否仅包含空格?

javascript - 如何通过点击td来更改td颜色(如战舰游戏)?

javascript - 使用 react-router 处理 401 未授权代码

javascript - 表格 - 单击边框时选择一个单元格

javascript - 使用javascript格式化日期字符串