我正在查看一些使用此模式的JS ViewModel代码,以便能够引用外部闭包,以防任何库在调用函数作为回调时更改“this”指针(得到爱的
JavaScript):
function FruitViewModel {
var that = this; // <-- HERE
this.someCallBack = function () {
that.utilityFunction();
};
this.utilityFunction = function () { }
}
我的问题是:这会导致内存泄漏还是特定于实现? (例如,如果垃圾是从里到外收集的)
编辑:请假设在GC认为此对象收集时,没有任何内容可以引用someCallBack.
最佳答案 垃圾收集器足够聪明,可以检测到这样的循环引用.所以它不会泄漏.