Object-Oriented Techniques in JavaScript
So far in this chapter we’ve covered the architectural
fundamentals of classes in JavaScript: the importance of the prototype
object, its connections to the constructor function, how the instanceof
operator works, and so on. In
this section we switch gears and demonstrate a number of practical
(though not fundamental) techniques for programming with JavaScript
classes. We begin with two nontrivial example classes that are
interesting in their own right but also serve as starting points for
the discussions that follow.
Example: A Set Class
A set is a data structure that represents an unordered collection of values, with no duplicates. The fundamental operations on sets are adding values and testing whether a value is a member of the set, and sets are generally implemented so that these operations are fast. JavaScript’s objects are basically sets of property names, with values associated with each name. It is trivial, therefore, to use an object as a set of strings. Example 9-6 implements a more general Set class in JavaScript. It works by mapping any JavaScript value to a unique string, and then using that string as a property name. Objects and functions do not have a concise and reliably unique string representation, so the Set class must define an identifying property on any object or function stored in the set.
Example 9-6. Set.js: An arbitrary set of values
function
Set
()
{
// This is the constructor
this
.
values
=
{};
// The properties of ...
Get JavaScript: The Definitive Guide, 6th 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.