JS闭包-外部活动对象AO与内部函数是否会出现循环引用?
案例:
function outer(){
function inner(){}
}
AO = { //outer执行时产生的活动对象引用inner
inner = function (){}
}
inner[[scope]]{ //创建的inner函数的[[scope]]会指向outer的活动对象AO
AO
}
根据JS高程、网上查阅资料,我认为会出现AO循环引用
即 inner[[scope]] = AO; AO.inner = function(){};
我认为这样会导致,outer一运行,其活动对象AO与内部函数inner会造成循环引用,造成内存泄漏? 实际情况应该不是这样,不知道哪里出现了偏差,也没有找到类似提问,困扰一下午了,求给予解答