Classes and Constructors
Example 9-1 demonstrates one way to define a
JavaScript class. It is not the idiomatic way to do so, however,
because it did not define a constructor. A
constructor is a function designed for the initialization of newly
created objects. Constructors are invoked using the new keyword as described in Constructor Invocation. Constructor invocations using
new automatically create the new
object, so the constructor itself only needs to initialize the state
of that new object. The critical feature of constructor invocations is
that the prototype property of the
constructor is used as the prototype of the new object. This means
that all objects created with the same constructor inherit from the
same object and are therefore members of the same class. Example 9-2 shows how we could alter the range class of
Example 9-1 to use a constructor function instead of a
factory function:
Example 9-2. A Range class using a constructor
// range2.js: Another class representing a range of values.// This is a constructor function that initializes new Range objects.// Note that it does not create or return the object. It just initializes this.functionRange(from,to){// Store the start and end points (state) of this new range object.// These are noninherited properties that are unique to this object.this.from=from;this.to=to;}// All Range objects inherit from this object.// Note that the property name must be "prototype" for this to work.Range.prototype={// Return ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access