Chapter 7. Objects

There are two broad categories of types in JavaScript. On one side is a small set of primitive types, like strings and numbers. On the other side are genuine objects, all of which derive from JavaScript’s Object.

JavaScript’s built-in objects are easy to recognize. They have constructors, and you’ll usually instantiate them with the new keyword. Basic ingredients like arrays, Date, error objects, Map and Set collections, and RegExp regular expressions are all objects.

JavaScript objects also differ in important ways from the objects you find in traditional object-oriented programming languages. For example, JavaScript allows you to create instances of the base Object type, and attach new properties and functions at runtime. In fact, you can take a live object—any object—and modify its members, with no need to respect a class definition.

In this chapter you’ll take a closer look at the functionality and quirks of JavaScript’s Object type. You’ll see how to use the core Object features to inspect, extend, and copy objects of all types. And in the next chapter, you’ll go one step further and learn the best practices for formalizing your own custom objects.

Checking if an Object Is a Certain Type

Problem

You have a mystery object and you want to determine its type.

Solution

Use the instanceof operator:

const mysteryObject = new Date(2021, 2, 1);

if (mysteryObject instanceof Date) {
  // We end up here because mysteryObject is a Date
}

You can ...

Get JavaScript Cookbook, 3rd 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.