Java Reference
In-Depth Information
Warning: Default Values in Prototype Objects Are
Shallow
Be careful when using the prototype to set default values. They are shal-
flected in the prototype and therefore shared between all instances.
A golden rule to remember is:
Never use arrays or objects as a default value
in prototype objects
.
An alternative would be to set the default value using the method of provid-
default value of the
food
property could be set as "
pizza
" in the con-
structor function:
var Turtle = function(name,food) {
this.name = name;
this.food = food || "pizza";
}
To summarize, the following points should be considered when using constructor functions
and prototype objects to create instances:
• Create a constructor function that deals with any initialization.
• Add any shared properties that remain constant and any shared methods to the pro-
totype object.
• Add any individual properties to the instance by assignment (a mixin could be used
for this, as we'll see later).
• Any extra methods and properties can be added to the prototype later, and will be
added to
all
instances.
• Be careful when overwriting the prototype object completely―the constructor
class needs to be reset.
To demonstrate, let's create another
Turtle
instance. Use the constructor function to ini-
tialize an instance:
