Controlling inheritance
Inheritance of members between objects is a powerful feature. However, in some situation, we want to control how member are passed from the parent object to the child and what a derived object can do with inherited members. Let's analyze the most common ways to control inheritance in JavaScript.
Overriding methods
When creating a derived object, we usually want to give it a slightly different behavior from parent object. This new behavior can be implemented by adding new methods or properties, but sometimes we need to redefine a method or a property of the parent object. In this case, we are talking about overriding.
Let's consider an example of a Person
definition with a getFullName()
method returning the concatenation of name
and surname
:
function Person(name, surname) { this.name = name; this.surname = surname; } Person.prototype.getFullName = function() { return this.name + " " + this.surname; }
Now, we want Developer
inheriting from Person
, but the...