Inheritance through Prototypes: Performance Boosting via Prototypes - www.docjavascript.com
The Effect of Prototypes on JavaScript's Performance
The prototype
property not only makes your life easier as a programmer, it also boosts your program's performance by accelerating the construction actions. Constructors are those functions that when called with the new
keyword, create new objects and assign them properties. Here is the constructor function path
:
function path() {
this.slideBy = slideBy;
this.moveTo = moveTo;
}
And here is how you call this constructor:
path_instance = new path();
We'll probably write a tutorial on the JavaScript language in one of our future columns. For now, let's revisit the terms object, class, instance, and methods. The object path
above refers to a class of objects that belong to the same type and are constructed by the same path
function (constructor). Each object generated by this function is an instance of the path
class. Methods are those functions that operate on objects and are generated during the object construction. slideBy
and moveTo
are two methods of the path
object.
Each time you create a new instance of an object with the
new
command (invoking the constructor), each and every object in the class has identical copies of the same method properties. All of these properties take up valuable memory space (even though you may only use one). Also, every time you want to create a new object and access a property created with the constructor, you need to reinvoke the constructor. Fortunately, JavaScript 1.1 introduced a solution to this problem: it allows an object to inherit properties from a prototype object.
Prototypes
In JavaScript 1.1 every object has a prototype property, which it inherits its
properties from. This means that all of the properties of the prototype object appear to be properties of the objects that inherit them. Inheritance occurs automatically as part of the process of looking up a property value. Properties are not copied, they magically appear as properties of the objects. This has two benefits: (i) using the prototype
property can drastically reduce the amount of memory required by an object, and (ii) objects can inherit prototype properties even after the object is created!
Produced by Yehuda Shiran and Tomer Shiran
Created: January 18, 1999
Revised: January 18, 1999
URL: https://www.webreference.com/js/column34/methods.html