gpt4 book ai didi

javascript - 这段 JavaScript 代码会按照我期望的方式进行垃圾回收吗?

转载 作者:数据小太阳 更新时间:2023-10-29 04:50:06 24 4
gpt4 key购买 nike

function fetchXmlDoc(uri) {
var xhr = new XMLHttpRequest();
var async = false;
xhr.open("GET", uri, async);
xhr.send();

return xhr.responseXML;
}

基本上,当我调用这个函数时,xhr 对象是否会被垃圾收集,或者它会永远保留,因为调用者持有 xhr.responseXML ?如果是后者,这样能解决吗?

function fetchXmlDoc2(uri) {
var xhr = new XMLHttpRequest();
var async = false;
xhr.open("GET", uri, async);
xhr.send();

var xml = xhr.responseXML;
return xml;
}

尽管我多年使用 JS,但整个内存管理的事情仍然让我感到困惑......

最佳答案

xhr 对象的 responseXML 属性是对实际数据对象的引用(就像您在第二段代码中隐式假设的那样:您不是在复制数据,而是在复制引用)。

所以 xhr 对象最终会被垃圾回收。只有一个引用:就在创建它的函数中。

关于javascript - 这段 JavaScript 代码会按照我期望的方式进行垃圾回收吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5518368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com