请看下面的例子:JS对象指针
var a = new A();
b = a;
A为对象 我想删除B和在同一时间所有的指针,其指向同一个对象! 但我只能访问b。请给我解决方案,我可以删除b和a同时只访问b!
请看下面的例子:JS对象指针
var a = new A();
b = a;
A为对象 我想删除B和在同一时间所有的指针,其指向同一个对象! 但我只能访问b。请给我解决方案,我可以删除b和a同时只访问b!
一个解决方案,“删除”b和a在同一时间只访问b!
您不能通过一个命令删除所有现有的引用,您需要手动执行(要求每个引用持有者忽略其值)。
您将需要访问保存的值的所有变量,在这里
b = null;
a = null;
// now it can be garbage-collected
如果你没有指定临时值的全局变量,你应该甚至不应该关心你所描述的问题,因为它采取由垃圾收集者照顾。原理非常简单:只要一个值失去指向它的所有指针,就会被垃圾收集器从内存中删除。
例如,在下面的示例中的变量a
和b
只存在,只要该功能f
执行:
var f = function() {
var a = new A();
var b = a;
}
THEREFOR由于通过的f
执行结束时的值new A()
失去所有指针它被GC消灭了。
据我所知,你不能[删除](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete)变量。您只能删除属性(全局变量是* window *对象的属性)。 – ComFreek