Сборщик мусора и замыкания



Джейк Арчибальд делится интересным кейсом, в котором неожиданно в JavaScript утекает память.





function demo() {

const bigArrayBuffer = new ArrayBuffer(100_000_000);



(() => {

console.log(bigArrayBuffer.byteLength);

})();



globalThis.innerFunc = () => {

console.log('hello');

};

}



demo();





Несмотря на то, что innerFunc никак не связана с bigArrayBuffer, bigArrayBuffer не удаляется из памяти посе выполнения этого кода.



Подробнее в статье.



https://jakearchibald.com/2024/garbage-collection-and-closures/