How is memory deallocated?

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

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

In JavaScript, memory for objects is automatically reclaimed wheneverthere is no longer need for the object. The JavaScript interpretertracks references to objects and deletes them when variables no longerrefer to them.

For example, consider the following JavaScript code:

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

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

The next statement, however, changes d so that instead ofreferring to the Array object, it contains thespecial value null. Since there is no longer any way toaccess the Array object, the JavaScript interpreterdestroys it by reclaiming the memory that was allocated to it.

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

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

d = new Array (50);
e = d; //
makee refer to the same object asd
d = null; //
disassociate d from the Arrayobject

Since the Array object is referenced by e at themoment it is abandoned by d, the Array objectremains intact.

In conclusion, there is no need to worry about destroying objects inJavaScript. Garbage collection is performed automatically by theinterpreter whenever objects are no longer useful or documents areunloaded. If you want to explicitly destroy an object, you can do so byabandoning it ? that is, by making sure there are no variables thatrefer to it. (Setting the variables to null works prettywell for this.)

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: