Perguntas do Quiz

How do you create a constructor function?

Topics
JAVASCRIPT
Edit on GitHub

TL;DR

To create a constructor function in JavaScript, define a regular function with a capitalized name to indicate it's a constructor. Use the this keyword to set properties and methods. When creating an instance, use the new keyword.

function Person(name, age) {
this.name = name;
this.age = age;
}
const john = new Person('John', 30);

How do you create a constructor function?

Defining a constructor function

A constructor function in JavaScript is a regular function that is used to create objects. By convention, the name of the constructor function starts with a capital letter to distinguish it from regular functions.

function Person(name, age) {
this.name = name;
this.age = age;
}

Using the this keyword

Within the constructor function, the this keyword is used to refer to the object that will be created. Properties and methods can be assigned to this.

function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function () {
console.log(
`Hello, my name is ${this.name} and I am ${this.age} years old.`,
);
};
}

Creating an instance

To create an instance of the object, use the new keyword followed by the constructor function.

const john = new Person('John', 30);
john.greet(); // Output: Hello, my name is John and I am 30 years old.

Adding methods to the prototype

To save memory, it's a good practice to add methods to the constructor's prototype instead of defining them inside the constructor function.

function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.greet = function () {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
};
const jane = new Person('Jane', 25);
jane.greet(); // Output: Hello, my name is Jane and I am 25 years old.

Checking the instance type

You can check if an object is an instance of a constructor function using the instanceof operator.

console.log(jane instanceof Person); // Output: true

Further reading

Edit on GitHub