我创建了一个非常简单的空网页,其中只有指向lodash库的链接。
然后(直接在Chrome控制台)创建一个简单的类:
window.class = function() {
this.bound = _.bind(this.toBind, this);
}
window.class.prototype.toBind = function() {
this.value = 'value';
}该类的实例将只有1个属性value和2个方法:toBind和bound (这是toBind的绑定版本)。
然后,我通过Chrome工具栏- Snapshot1获取堆快照-这是堆的初始状态。
然后创建一个class实例并删除它:
window.obj = new window.class()
window.obj = null;
delete window.obj;最后,我再拍一张堆快照。
我希望obj实例不再是活动的,因为不再有对它的引用(唯一的引用是window.obj,但在最后一步中它被删除了)。但是,对两个堆快照的比较表明,对象仍然是活着的,似乎提交了对它的引用(在Chrome34.0.1847.131中进行了测试)。

有人能解释一下这是不是真正的内存泄漏吗?或者这种行为有什么秘密意义?
注意:本机绑定工作正常。
非常感谢!
https://stackoverflow.com/questions/23580926
复制相似问题