O'Reilly logo

JavaScript Patterns by Stoyan Stefanov

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 with a blank ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required