关于局部变量自动删除引用的范围?直接设置null删除引用的范围?
function fn(argument) {
var xm = {}; // 1
var xh = {}; // 1
xm.wife = xh; // 2
xh.husband = xm; // 2
}
fn();
xm = null; // 1
xh = null; // 1
局部变量离开作用域,自动删除的引用没有包含它的属性的引用吗?直接设置xm=null,是不是全局变量及它的属性的所有引用都删除?
13
收起
正在回答
2回答
同学你好 , 老师之前讲解的可能有点不清楚,给同学造成了困扰。视频中老师在函数调用后,手动设置xm = null, 是为了模拟函数调用后对xm的引用会被设置为null, 清除一次引用,但是之前xh指向的那个地址中husband属性还指向了xm之前指向的{}地址,所以还有一次引用没有解除。
同学可以结合视频中老师的讲解去理解, 语言讲解会比文字更加生动形象哦。
另,关于垃圾回收机制这里,同学可以先作为了解,帮助自己更好的去理解引用类型等的使用方式,等到自己的知识体系积累到一定程度,在回过头来深入研究其中的原理, 会更容易理解,也会帮助自己的能力哦
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星