【发布时间】:2014-07-16 05:51:46
【问题描述】:
function Car() {
this.interval = {id: null};
this.i = 0;
this.start = function() {
this.interval.id = setInterval(this.go.bind(this), 1000);
}
this.go = function() {
this.i++;
if (this.i >= 5) {
console.log("kill");
this.kill();
} else {
console.log("go");
}
};
this.kill = function() {
clearInterval(this.interval.id);
};
}
var car = new Car();
car.start();
car = null;
当我运行上面的代码时,我得到了
go
go
go
go
kill
不应该对汽车对象进行垃圾收集,因为它无法访问吗? setInterval 如何能够访问汽车对象?之后汽车对象还会继续存在吗?
【问题讨论】:
标签: javascript garbage-collection