All the methods and properties you have added to the prototype are available as soon as you create a new object using the constructor. If you create a newtoy
object using the Gadget()
constructor, you can access all the methods and properties already defined.
> var newtoy = new Gadget('webcam', 'black'); > newtoy.name; "webcam" > newtoy.color; "black" > newtoy.whatAreYou(); "I am a black webcam" > newtoy.price; 100 > newtoy.rating; 3 > newtoy.getInfo(); "Rating: 3, price: 100"
It's important to note that the prototype is "live". Objects are passed by reference in JavaScript, and therefore, the prototype is not copied with every new object instance. What does this mean in practice? It means that you can modify the prototype at any time and all the objects (even those created before the modification) will "see" the changes.
Let's continue the example by adding a new method to the prototype:
Gadget.prototype.get = function (what...