相关疑难解决方法(0)

如何在原型函数中删除实例是JavaScript

如果我有一个JavaScript构造函数,我在其原型上设置了destroy方法.是否可以从destroy方法中删除(或至少取消设置)实例?这是我正在尝试做的一个例子.

Klass.prototype = {
  init: function() {
    // do stuff
  },
  destroy: function() {
    // delete the instance    
  }
};

k = new Klass
k.destroy()
console.log(k) // I want this to be undefined
Run Code Online (Sandbox Code Playgroud)

我明白我不能简单地this = undefined使用destroy方法,但我认为我可以通过使用这样的超时来解决这个问题:

destroy: function() {
  var self = this;
  setTimeout( function() {
    self = undefined
  }, 0)  
}
Run Code Online (Sandbox Code Playgroud)

我认为超时函数可以通过self闭包来访问实例(它确实如此),但这似乎不起作用.如果我console.log(self)从该函数内部显示为undefined,但k在全局范围内仍然是一个实例Klass.

有谁知道如何使这项工作?

javascript

8
推荐指数
1
解决办法
9316
查看次数

标签 统计

javascript ×1