8Objects, Classes, and Object-Oriented Programming
WHAT'S IN THIS CHAPTER?
- Understanding objects
- Understanding object creation
- Understanding inheritance
- Understanding classes
ECMA-262 defines an object as an unordered collection of properties. Strictly speaking, this means that an object is an array of values in no particular order. Each property or method is identified by a name that is mapped to a value. For this reason (and others yet to be discussed), it helps to think of ECMAScript objects as hash tables: nothing more than a grouping of name-value pairs where the value may be data or a function.
UNDERSTANDING OBJECTS
The canonical way of creating a custom object is to create a new instance of Object
and add properties and methods to it, as in this example:
let person = new Object();
person.name = "Nicholas";
person.age = 29;
person.job = "Software Engineer";
person.sayName = function() {
console.log(this.name);
};
This example creates an object called person
that has three properties (name
, age
, and job
) and one method (sayName()
). The sayName()
method displays the value of this.name
, which resolves to person.name
. Early JavaScript developers used this pattern frequently to create new objects. A few years later, object literals became the preferred pattern for creating such objects. The previous example can be rewritten using object literal notation as follows:
let person = {
name: "Nicholas",
age: 29,
job: "Software Engineer",
sayName() {
console.log(this.name); ...
Get Professional JavaScript for Web Developers, 4th 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.