删除类的实例

Delete instance of a class?

本文关键字:实例 删除      更新时间:2023-09-26

我有一个类是这样创建的:

function T() {
    this.run = function() {
        if (typeof this.i === 'undefined')
            this.i = 0;
        if (this.i > 10) {
            // Destroy this instance
        }
        else {
            var t = this;
            this.i++;
            setTimeout( function() {
                t.run();
            }, 1000);
        }
    }
}

然后我像var x = new T(); 一样初始化它

如果达到10次迭代,我不知道如何从内部销毁这个实例。

此外,我也不知道如何从外部摧毁它,以防我想在它达到10之前阻止它。

要删除一个实例,在JavaScript中,您需要删除所有指向它的引用,以便垃圾收集器可以回收它。

这意味着您必须知道包含这些引用的变量。

如果您刚刚将其分配给变量x,则可以执行

x = null;

x = undefined;

delete window.x;

但最后一个,正如Ian所说,只有当你将x定义为window的显式性质时,它才能起作用。

不相同的函数是不同的。无法删除是系统修改。

class SAFunc {
  method1(){
    console.log("1");
  }
  method2(){
    console.log("2");
  }
}
let func  = new SAFunc();
func['method2']()

尝试:

  • delete window['func']-不工作
  • delete eval['func']-不工作
  • delete window['SAFunc']—不工作

功能-命令工作删除

method1 = function(){
  console.log("func1");
}
function method2() {
  console.log("func2");
}
var SAFunc = { method3: function() { console.log("func3"); } }

进行测试。。。尝试:

  • delete window['method1']
  • delete window['method2']
  • delete SAFunc['method3']

很有趣!我喜欢编程

加入我们;)