Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

What are Methods in JavaScript?

JavaScript is a versatile and powerful programming language that powers a significant portion of the web. If you're new to programming or just starting to learn JavaScript, you might have come across the term "methods." In this blog post, we'll explore what methods are, how they work, and provide some helpful analogies and code examples to make the concept more accessible.

What are methods?

In JavaScript, a "method" is a function that is associated with an object. Think of an object as a bundle of related properties and actions (methods) that you can perform on those properties. You can think of a method as a verb (action) that the object (noun) can perform.

For example, imagine we have a simple calculator object with a property result and a method add. The add method takes two numbers as inputs, adds them together, and stores the result in the result property. This is what a simple calculator object might look like in JavaScript:

const calculator = {
  result: 0,

  add: function(a, b) {
    this.result = a + b;
  }
};

In this example, the calculator object has a method called add, which is a function that takes two parameters, a and b. The this keyword inside the function refers to the object it's associated with - in this case, the calculator object. So this.result refers to the result property of the calculator object.

To use the add method, you would call it like this:

calculator.add(3, 4);
console.log(calculator.result); // Output: 7

Here, we called the add method on the calculator object and passed in two numbers, 3 and 4. The method added the numbers together and stored the result in the result property of the calculator object. When we logged the result property to the console, we got the expected output, 7.

Why use methods?

Methods help to organize the code and make it more readable and maintainable. By bundling related properties and functions into objects, you can create self-contained units of code that are easy to understand, reuse, and modify.

Here's an analogy to help illustrate the concept: think of an object as a toolbox, and the methods as the tools inside the toolbox. Just like how you use tools to perform specific tasks, you use methods to perform specific actions on the object's properties.

How to define methods in JavaScript

There are several ways to define methods in JavaScript. We'll look at three of the most common approaches.

1. Object literals

The first way we'll look at is the one we used in the calculator example: defining a method inside an object literal. Here's another example using a person object with a greet method:

const person = {
  firstName: 'John',
  lastName: 'Doe',

  greet: function() {
    console.log(`Hello, my name is ${this.firstName} ${this.lastName}`);
  }
};

person.greet(); // Output: Hello, my name is John Doe

In this example, we created a person object with two properties, firstName and lastName, and a greet method that logs a greeting message to the console. When we call the greet method, it uses the this keyword to access the firstName and lastName properties of the person object.

2. Constructor functions

Another way to define methods in JavaScript is by using constructor functions. A constructor function is a special function that is used to create new objects with a specific structure and behavior. To define a method using a constructor function, you can attach it to the function's prototype property. Here's an example using a Dog constructor function with a bark method:

function Dog(name, breed) {
  this.name = name;
  this.breed = breed;
}

Dog.prototype.bark = function() {
  console.log(`${this.name} says: Woof!`);
};

const myDog = new Dog('Max', 'Labrador');
myDog.bark(); // Output: Max says: Woof!

In this example, we created a Dog constructor function that takes two parameters, name and breed. We then added a bark method to the Dog's prototype, which allows all instances of the Dog object to inherit and use the bark method. Finally, we created a new Dog object using the new keyword and called the bark method on it.

3. ES6 classes

The third way to define methods in JavaScript is by using ES6 classes. Classes are a more modern and convenient way to create objects with a specific structure and behavior. To define a method inside a class, you simply include it in the class body. Here's an example using a Car class with a drive method:

class Car {
  constructor(make, model) {
    this.make = make;
    this.model = model;
  }

  drive() {
    console.log(`${this.make} ${this.model} is driving`);
  }
}

const myCar = new Car('Toyota', 'Corolla');
myCar.drive(); // Output: Toyota Corolla is driving

In this example, we created a Car class with a constructor and a drive method. The constructor function takes two parameters, make and model, and initializes the object's properties. The drive method is defined directly in the class body, making it a part of the Car object. Finally, we created a new Car object using the new keyword and called the drive method on it.

Conclusion

In this blog post, we've discussed what methods are in JavaScript, why they're useful, and how to define them using different approaches. We've also provided some helpful analogies and code examples to make the concept more accessible.

Remember, methods are functions associated with objects that allow you to perform specific actions on the object's properties. They help to organize your code, making it more readable and maintainable.

Now that you have a better understanding of methods in JavaScript, you can start applying this knowledge to your own projects and continue expanding your understanding of the language. Good luck, and happy coding!