heytools
heytools

Reputation: 782

JavaScript - Garbage collection after function calls

I had some reads about garbage collection in JavaScript, according to them, local variables of functions are collected after the function returned (except for the cyclical references that need breaking circles for the GC to work).

What I'm trying to understand is, what does "function returned" in this context mean?

Does it mean:

  1. The function has to return values.

    or simply:

  2. The function call has ended.

Common sense (according to me at least) suggests 2), but in the case I'm wrong:

Upvotes: 3

Views: 2505

Answers (1)

bfavaretto
bfavaretto

Reputation: 71939

Functions that don't contain a return statement implicitly return undefined. So a function "ending" and "returning" are the same thing.

Concerning garbage collection, keep in mind that local variables are not collected immediately after functions return; they can just become eligible for garbage collection at that point. The garbage collector runs whenever the browser considers it must run, or believes it can run without affecting visible performance much (and that's implementation-dependent).

Upvotes: 9

Related Questions