var person = {
name: 'John'
};
function Pet1(person) {
var owner = person.name;
this.showOwner = function() {
alert(owner);
}
}
function Pet2(person) {
this.showOwner = function() {
alert(person.name);
}
}
var pets = [new Pet1(person), new Pet2(person)];
...
pets.splice(0, 1);
pets.splice(0, 1);
上面的哪个代码阻止了 JS GC 在 Pet1 和 Pet2 超出范围或没有更多引用时不收集它们的实例。我知道的是 Pet2 但你不认为 Pet1 也能阻止 JS GC 吗?