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
new
operator.It is passed a reference to a newly created, empty object as the value of the
this
keyword, 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; ...
Get JavaScript: The Definitive Guide, Fourth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.