Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to make an object in JavaScript

If you're learning programming, you've probably heard about JavaScript. It's one of the most popular programming languages, especially for web development. In this post, we'll dive into one of the fundamental concepts of JavaScript: objects. We'll explain what objects are, how to create them, and how to use them. We'll avoid jargon as much as possible, and when we do use technical terms, we'll make sure to explain them.

What is an object in JavaScript?

In programming, an object is a way to store and organize information. You can think of an object as a container that holds related data and functions (called methods) that act on that data. An object can represent a real-world entity, like a person, a product, or a location. In JavaScript, objects are a versatile way to create and manage complex data structures.

To give you an analogy, let's think about a bookshelf. A bookshelf is a container that holds books, and each book has a title, an author, and a number of pages. You can imagine an object as a bookshelf, where the books are the data and the information about each book (title, author, and number of pages) is organized and stored.

Creating an object in JavaScript

There are several ways to create an object in JavaScript, but we'll focus on two main methods for this tutorial:

  1. Object literal notation
  2. Constructor functions

Object literal notation

Object literal notation is a simple and straightforward way to create an object. You simply define the object and its properties (data) and methods (functions) using curly braces {}.

Here's an example of creating an object representing a book using object literal notation:

const book = {
  title: 'To Kill a Mockingbird',
  author: 'Harper Lee',
  pageCount: 281,
  read: function() {
    console.log(`You've just read ${this.title} by ${this.author}.`);
  },
};

In this example, we created a book object with the properties title, author, and pageCount, and a method called read. Notice the use of the this keyword inside the read method. this refers to the object itself, so this.title and this.author refer to the title and author properties of the book object.

You can access the properties and methods of an object using dot notation. For example, to get the book's title, you would write book.title. To call the read method, you would write book.read().

Constructor functions

Another way to create an object is by using a constructor function. A constructor function is a special kind of function that creates and initializes new objects. The name of a constructor function usually starts with an uppercase letter to differentiate it from regular functions.

Here's an example of creating a Book constructor function:

function Book(title, author, pageCount) {
  this.title = title;
  this.author = author;
  this.pageCount = pageCount;
  this.read = function() {
    console.log(`You've just read ${this.title} by ${this.author}.`);
  };
}

To create a new object using the Book constructor function, you use the new keyword, followed by the constructor function name and the arguments for the object properties:

const book = new Book('To Kill a Mockingbird', 'Harper Lee', 281);

Now, the book object has the same properties and methods as in the object literal notation example. You can access and use them in the same way:

console.log(book.title); // Output: To Kill a Mockingbird
book.read(); // Output: You've just read To Kill a Mockingbird by Harper Lee.

Constructor functions are useful when you need to create multiple objects with the same structure and behavior. For example, if you want to create a library system with many books, you can use the Book constructor function to easily create new book objects.

Working with objects in JavaScript

Now that you know how to create objects, let's explore some common operations you might need to perform when working with objects in JavaScript.

Adding properties and methods

You can add properties and methods to an object after it's been created. To do this, use dot notation and assign a value or function to the new property or method name:

book.publisher = 'J.B. Lippincott & Co.';
book.printDetails = function() {
  console.log(`${this.title} by ${this.author}, published by ${this.publisher}`);
};

console.log(book.publisher); // Output: J.B. Lippincott & Co.
book.printDetails(); // Output: To Kill a Mockingbird by Harper Lee, published by J.B. Lippincott & Co.

Deleting properties and methods

You can also remove properties and methods from an object using the delete keyword:

delete book.publisher;
delete book.printDetails;

console.log(book.publisher); // Output: undefined

After deleting the publisher property and printDetails method, trying to access them will return undefined.

Looping through an object's properties

Sometimes you might want to loop through all the properties of an object. You can do this using the for...in loop:

for (const property in book) {
  console.log(`${property}: ${book[property]}`);
}

This will output the following:

title: To Kill a Mockingbird
author: Harper Lee
pageCount: 281
read: function() { ... }

Conclusion

In this tutorial, we've covered the basics of objects in JavaScript, including how to create objects using object literal notation and constructor functions, and how to work with object properties and methods. We hope this helps you better understand and work with objects in your future JavaScript projects.

As you continue learning JavaScript, you'll discover more advanced features and ways to work with objects, such as prototypes and inheritance. But for now, mastering the basics of objects will set a strong foundation for your JavaScript journey.