Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

What is an instance in JavaScript

Understanding the Concept of an Instance

Let's start with the concept of an instance. To make it simple, an instance is like a unique copy of a blueprint. Imagine you have a blueprint for a house. The blueprint itself is not a house, but using it, you can build as many houses as you want. Each house you build using the blueprint is an instance of that blueprint.

In JavaScript, when we talk about instances, we are often referring to objects that have been created from a constructor function. The constructor function serves as the blueprint, and each object created from it is an instance.

Constructor Functions: The Blueprint

In JavaScript, we use constructor functions to define the properties and methods that an object should have. For example, let's consider a Car constructor function:

function Car(make, model, year) {
  this.make = make;
  this.model = model;
  this.year = year;
}

In this constructor function, make, model, and year are all parameters that will be used to set properties on the objects we create.

Creating an Instance

To create an instance, or to build a 'house' using our 'blueprint', we use the new keyword followed by the constructor function:

const myCar = new Car('Toyota', 'Corolla', 2007);

In this case, myCar is an instance of Car. It has all the properties (make, model, and year) defined in the Car constructor function.

Instances Are Unique

Each instance is unique. For example, let's create another instance of Car:

const yourCar = new Car('Honda', 'Civic', 2010);

yourCar is a completely separate instance from myCar. Even though they were created from the same constructor function, they have different property values.

Instance Methods

Constructor functions can also define methods, which are functions that can be called on instances. For example, we can add a getAge method to our Car constructor that calculates the age of the car:

function Car(make, model, year) {
  this.make = make;
  this.model = model;
  this.year = year;

  this.getAge = function() {
    const currentYear = new Date().getFullYear();
    return currentYear - this.year;
  }
}

Now, each Car instance will have a getAge method that can be called like this:

const myCar = new Car('Toyota', 'Corolla', 2007);
console.log(myCar.getAge()); // Outputs the age of 'myCar'

Conclusion - The Power of Instances

Instances are a fundamental part of JavaScript programming. They provide a way to create multiple unique objects from a single blueprint, the constructor function. By understanding instances, you're unlocking a significant part of JavaScript's power.

It's like having a magic wand that can create unique magical beings from the same spell. Each magical being (instance) might share the same characteristics like having a wand and a pointy hat (properties), or the ability to cast a spell (method), but they are still unique. One might be good at potions, another might excel in transfiguration. In the same way, instances in JavaScript share the same properties and methods, but their values can be different, making them unique and versatile in the world of coding.

Remember, every time you create an instance, you're adding another being to your coding universe. So, wield your wand wisely, and happy coding!