In Chapters 1 and 2, we explained how the
this binding points to
various objects depending on the call-site of the function invocation.
But what exactly are objects, and why do we need to point to them? We
will explore objects in detail in this chapter.
Objects come in two forms: the declarative (literal) form and the constructed form.
The literal syntax for an object looks like this:
The constructed form looks like this:
The constructed form and the literal form result in exactly the same sort of object. The only difference really is that you can add one or more key/value pairs to the literal declaration, whereas with constructed-form objects, you must add the properties one by one.
It’s extremely uncommon to use the “constructed form” for creating objects as just shown. You would pretty much always want to use the literal syntax form. The same will be true of most of the built-in objects (explained later).
Objects are the general building block upon which much of JS is built. They are one of the six primary types (called “language types” in the specification) in JS:
Note that the simple primitives (
undefined) are not themselves
sometimes referred to as an object type, but this misconception stems
from a bug in the language that causes
typeof null to return the