Chapter 3. Literals and Constructors

Literal notation patterns available in JavaScript enable more concise, more expressive, and less error-prone object definitions. This chapter discusses literals such as object, array, and regular expression literals and why they are preferable to using equivalent built-in constructor functions, such as Object() and Array(). The JSON format is introduced to demonstrate how array and object literals are used to define a data transfer format. The chapter also discusses custom constructors and ways to enforce new to make sure constructors behave as intended.

To extend the main message of the chapter (which is to avoid constructors and use literals instead), there’s a discussion of the built-in wrapper constructors Number(), String(), and Boolean() and how they compare to the primitive number, string, and boolean values. Finally there’s a quick note on the use of the different built-in Error() constructors.

Object Literal

When you think about objects in JavaScript, simply think about hash tables of key-value pairs (similar to what are called “associative arrays” in other languages). The values can be primitives or other objects; in both cases they are called properties. The values can also be functions, in which case they are called methods.

The custom objects you create in JavaScript (in other words, the user-defined native objects) are mutable at any time. Many of the properties of the built-in native objects are also mutable. You can start ...

Get JavaScript Patterns 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.