Tengo una función a donde hay una función b que hace referencia a foo en su cierre.
class Foo {} function a() { const foo = new Foo() const b = () => { foo // referencing `foo` } b() }; a() // no memory leaks después de ejecutar a , no hay pérdidas de memoria para Foo .
También lo modifiqué un poco. Aún así, no hay pérdidas de memoria para los siguientes ejemplos.
class Foo {} function a() { const foo = new Foo() const b = () => { if(foo === 'foo') { } } b() }; a() // no memory leaks class Foo {} function a() { const foo = new Foo() const b = () => { console.log(foo.lol) } b() }; a() // no memory leaks Pero tan pronto como me desconecté de foo , se producen pérdidas de memoria.
class Foo {} function a() { const foo = new Foo() const b = () => { console.log(foo) } b() }; a() // memory leaks Mi pregunta es por qué console.log(fii) se filtra pero hace referencia a foo de otras maneras o cierra la sesión de su propiedad console.log(foo.lol)
Los probé en la consola Chrome 103 DevTool.