编程语言
首页 > 编程语言> > 用JavaScript销毁“ this”?

用JavaScript销毁“ this”?

作者:互联网

如何销毁函数中的“ this”,以便销毁函数中的函数实例.如果使用纯JavaScript无法做到这一点.原型有可能吗?所以像这样:

this = nil

或类似的东西:

prototype.destroy(this)

我不知道prototype或javascript是否具有此类内置功能.我可以调用一个函数来轻松地从实例外部销毁实例吗?

谢谢

解决方法:

您无法在javascript中销毁它,甚至尝试这样做也与在javascript中如何垃圾收集背道而驰.另外,您无法在javascript中分配给它.

您不会手动释放javascript中的内容.相反,您清除对javascript中对象的所有引用,并且当没有其他代码对javascript中的对象进行引用时,那么,然后垃圾回收器将其释放.

由于javascript不允许您将其分配给this指针,因此,当您使用已将此函数设置为特定对象的函数时,您根本无法以该方式以任何方式释放该对象.您可以确保没有其他对象对您的对象有引用,然后,当此方法完成时,如果没有其他对象对该对象的引用,则垃圾回收器将释放该对象.

垃圾收集系统中的内存管理与非垃圾收集语言中的内存管理完全不同.你不会自己释放东西.您清除对事物的引用,以便在没有其他引用的情况下,GC可以在以后的某个时间清理这些对象.

这是一个例子.假设您有一个对象,该对象的属性存储在全局变量中:

// declare global object and add property to it
var myGlobalObject = {};
myGlobalObject.greeting = "Hello";

您永远不会显式地释放该全局变量,但是如果您希望它指向的对象由垃圾收集器释放,则只需清除对该对象的引用即可:

myGlobalObject = null;

然后,GC将看到不再有任何代码引用myGlobalObject所指向的对象,并且由于该对象现在无法被任何代码访问,因此它将被GC释放.

标签:javascript,prototypejs
来源: https://codeday.me/bug/20191012/1900831.html