javascript - 如何在 Javascript crossbrowser 中删除一个对象

标签 javascript model-view-controller object prototypal

var obj = {
    destroy: function(){this = null;}
};

obj.destroy();

这在 Chrome 中有效,但是 firefox 出于某种原因抛出引用此错误。有没有更好的方法在一个方法中杀死这个对象?

错误:

invalid assignment left-hand side
[Break On This Error] destroy: function(){this = null;} 

最佳答案

不确定为什么 Chrome 允许它,但你不能为此分配一个值。您可以引用它,但不能为其赋值。

如果您想要执行一些数组销毁操作,您可以在销毁方法中引用 this.myArrayName 并释放您要释放的任何内容,但您不能只将 null 分配给 this 来销毁实例。

我想你可以尝试这样的事情:

var foo = {
    // will nullify all properties/methods of foo on dispose
    dispose: function () { for (var key in this) this[key] = null; }
}

foo.dispose();

几乎可以合法地使“this”无效......

快乐编码。

B

关于javascript - 如何在 Javascript crossbrowser 中删除一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6794369/

相关文章:

java - 需要在 Java 中将两个由英尺和英寸组成的对象添加在一起

javascript - $inc 追随者数量,还是我应该使用聚合来跟踪他们?

java - 在 Spring MVC Web 应用程序中,您应该如何处理 Controller 级别以下发生的异常?

javascript - 缺少区域设置 "ru"Angular 5 的区域设置数据

javascript - 将 jquery 对象转换为 DOM 并使用 appendChild 函数

cocoa - 如何保持MVC!! :)

C++ - undefined object 引用

python - 是否可以抓取未分配给变量的实例化对象?

javascript - 如何在 JSDoc 中描述解构的对象参数

javascript - 关闭对话框时留下灰色阴影