Будет ли этот код JavaScript собирать мусор так, как я ожидаю?

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, вся эта штука с управлением памятью все еще сбивает меня с толку ...

7
задан Domenic 1 April 2011 в 20:16
поделиться