删除类的实例
Delete instance of a class?
我有一个类是这样创建的:
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']
很有趣!我喜欢编程
加入我们;)
相关文章:
- 如何删除特定文本短语的所有实例
- 使用javascript删除特定HTML实体(breadcrumb)的最后一个实例
- 删除所有CKEditor实例
- 为什么在删除指令之后“;人;类的实例仍然存在
- CodeMirror 删除编辑器实例
- 删除数据网格 (Dojo) 和表 (数据网格) 的实例正确显示
- 删除聚合物元素,文件上传在实例上传时逐渐添加更多文件
- jQuery插件实例并删除/销毁它们
- 如何在 Angularjs 视图中删除 dom 实例
- 单击按钮时删除类的所有实例
- 删除多个字符之一的第一个实例之后的所有内容
- 有没有办法使用 gulp 删除 require.js 定义([..]) 包装器的所有实例
- 如何使用续集/ MySQL删除特定实例的关系
- 如何删除多维数据集.js实例的一天之后的事件
- 使用其他javascript删除字符串中某个字符的所有实例
- 在Javascript中,我应该删除以前的级别吗;s实例
- Javascript:当生成id时,需要删除页面上一个类的单个实例
- 重置'setIntervall'计数器/删除现有实例
- 删除多余的;#字符串中的实例
- 使用实例删除javascript中基于id的对象