Constructors
We
saw previously that you can create and initialize a new object in
JavaScript by using the new
operator in conjunction with a
predefined constructor function such as Object( ),
Date( ), or Function( ). These
predefined constructors and the built-in object types they create are
useful in many instances. However, in object-oriented programming, it
is also common to work with custom object types defined by your
program. For example, if you are writing a program that manipulates
rectangles, you might want to represent
rectangles with a special type, or class, of
object. Each object of this Rectangle class would have a
width property and a height
property, since those are the essential defining characteristics of
rectangles.
To create objects with
properties such as
width and height already
defined, we need to write a constructor to create and initialize
these properties in a new object. A constructor is a JavaScript
function with two special features:
It is invoked through the
newoperator.It is passed a reference to a newly created, empty object as the value of the
thiskeyword, and it is responsible for performing appropriate initialization for that new object.
Example 8-1 shows how the constructor function for a Rectangle object might be defined and invoked.
Example 8-1. A Rectangle object constructor function
// Define the constructor. // Note how it initializes the object referred to by "this". function Rectangle(w, h) { this.width = w; this.height = h; ...