Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

248
Views
Recolección de basura JS: ¿Se recolectan basura las funciones declaradas (que no se llaman)?

Soy nuevo en la administración de memoria en JS, así que disculpe si esta es una pregunta tonta.

Supongamos que tengo un componente con tres funciones definidas y una declaración de cambio de caso que llama solo a una función según el caso coincidente. ¿Las otras dos funciones ocuparán la memoria o se recolectarán basura una vez que se ejecute la declaración de cambio?

 
function funcA() {};
function funcB() {};
function funcC() {};

switch(type) {
 case 'funcA':
 funcA();
 break;
 case 'funcB':
 funcB();
 break;
 case 'funcC':
 funcC();
 break;
}
almost 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Si se define dentro del alcance de una función y no en el nivel superior del documento, cualquier variable local a la que se haga referencia solo dentro de ese alcance (incluidas las definiciones de función) se recolectará como basura en algún momento después de que la función termine de ejecutarse.

Puede verificar esto usando FinalizationRegistry así:

 function memoryExperiment(type) {
 function funcA() {};
 function funcB() {};
 function funcC() {};
 
 const registry = new FinalizationRegistry((heldValue) => {
 console.log(`Garbage collected ${heldValue}`)
 });
 registry.register(funcA, "funcA")
 registry.register(funcB, "funcB")
 registry.register(funcC, "funcC")

 switch(type) {
 case 'funcA':
 funcA();
 break;
 case 'funcB':
 funcB();
 break;
 case 'funcC':
 funcC();
 break;
 }

 return registry
}

const registry = memoryExperiment('funcA')

Se registra un mensaje para las tres funciones que indica que se recolectaron elementos no utilizados.

Es difícil predecir exactamente cuándo se recopilarán, ya que el algoritmo de recolección de elementos no utilizados toma decisiones en función de varios factores, pero en mis pruebas en un archivo html en Chrome que de otro modo estaría en blanco, por lo general es después de unos segundos.

almost 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!