Prototype in JavaScript is an object property which links an object to a different one. Inherited objects are bound to consist of properties from their parent objects, but you can apply additional properties as well.
Concepts to be discussed in this article include JavaScript prototype and prototypal inheritance, as well as JavaScript prototypal inheritance chain. We will also explain what a prototype in JavaScript is, how you can target and modify them.
Contents
JavaScript Prototype: Main Tips
- Every single object in JavaScript has a prototype.
- A prototype itself is an object too.
- The objects inherit methods and properties from their prototypes.
- Every object in JavaScript inherits from
Object.prototype
which is on the top of the prototype chain.
Prototypal Inheritance and the Prototype Chain
JavaScript inheritance means that all JavaScript objects inherit properties and methods from their JavaScript prototype:
Date
objects inherit fromDate.prototype
.Array
objects inherit fromArray.prototype
.Person
objects inherit fromPerson.prototype
.
The Object.prototype
is on the top of the prototypal inheritance chain:
Date
objects, Array
objects, and Person
objects inherit from Object.prototype
.
Using the prototype Property
The prototype
property in JavaScript lets you add properties and methods to prototypes. In the example below, you can see a property added to a prototype.
function Person(name, age, zodiac) {
this.name = name;
this.age = age;
this.zodiac = zodiac;
}
Person.prototype.nationality = "Irish";
Similarly as properties, methods might be added to prototypes. See our next example to see how it's done:
function Person(name, age, zodiac) {
this.name = name;
this.age = age;
this.zodiac = zodiac;
}
Person.prototype.info = function() {
return this.name + " " + this.age;
};
Note: avoid modifying standard JavaScript objects. You should only change your own prototypes.
JavaScript Prototype: Summary
- All objects in JavaScript have a prototype.
- Objects inherit methods and properties from their prototypes.
Object.prototype
is at the top of the prototypal inheritance chain.- Use the
prototype
property to add new properties and methods to a JavaScript prototype.