说我有
function doWithRetry(retries=5) {
let bigObject = new BigObject()
try {
return doSomething(bigObject)
} catch (e) {
if(retries) {
return doWithRetry(retries-1)
}
}
}
所以我在想,当我再次尝试时,调用堆栈继续增长,所以我的问题是bigObject我的函数调用堆栈上的 s 是否没有资格进行垃圾收集,直到整个堆栈展开,即使它们不是真的可达,因此我应该bigObject在执行递归函数调用之前从本地函数范围中删除?