WEBINAR:

On-Demand

How is memory deallocated?

Question: The new operator allocates memory for objects.
How is
this memory deallocated?

Answer: If you have ever programmed in C++, you might wonder why JavaScript does
not have a delete operator to match the new
operator. The reason for this is simple: It's not necessary!

In JavaScript, memory for objects is automatically reclaimed whenever
there is no longer need for the object. The JavaScript interpreter
tracks references to objects and deletes them when variables no longer
refer to them.

For example, consider the following JavaScript code:

d = new Array (50);
d = null;

The first statement allocates memory for an Array object
large enough to hold 50 elements, and then records the fact that the new
object is referenced by a variable named d.

The next statement, however, changes d so that instead of
referring to the Array object, it contains the
special value null. Since there is no longer any way to
access the Array object, the JavaScript interpreter
destroys it by reclaiming the memory that was allocated to it.

Reclaiming memory allocated to objects that can no longer be accessed
is called garbage collection. Allocated objects no
longer accessible by variables are called orphan objects.

This next example shows how to modify the above code to prevent the
destruction of the Array object:

Since the Array object is referenced by e at the
moment it is abandoned by d, the Array object
remains intact.

In conclusion, there is no need to worry about destroying objects in
JavaScript. Garbage collection is performed automatically by the
interpreter whenever objects are no longer useful or documents are
unloaded. If you want to explicitly destroy an object, you can do so by
abandoning it  that is, by making sure there are no variables that
refer to it. (Setting the variables to null works pretty
well for this.)