Reputation: 782
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:
The function has to return values.
or simply:
The function call has ended.
Common sense (according to me at least) suggests 2), but in the case I'm wrong:
return;
to the functions that don't return anything to make the garbage collector do its job?Upvotes: 3
Views: 2505
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