Chaining Constructors and JS Inheritance
JavaScript is not a typical OO language, and shouldnât be pushed, pummeled, or constrained into one. It has its own strengths, which should be used to advantage. Still, there are pieces of traditional object-oriented design that would be nice to use in applications. In the last section we saw one type of OO-based design: encapsulation. This section covers another: inheritance.
Inheritance incorporates, or inherits,
another objectâs methods and properties in a new object. Itâs the
fundamental power of class-oriented development because one class can
inherit from another class, choosing to override whatever functions that
have a new behavior in the new class. Something similar can be used in
JS to emulate this behavior, starting with JavaScript 1.3âthe function
methods of apply
and call
.
Returning to previous examples, when a function defining a new
object is written, it becomes the object constructor and is invoked when
the new
keyword is used with the
function:
theobj = new DivObj(params);
Both the function apply
and
call
methods allow you to apply or invoke a method within the context of another object. If used with an object constructor, it chains the constructors in such a way that all properties and methods of the one object are inherited by the containing object. The only difference between the two is the parameters passed; the behavior is the same. The call method takes the containing object as the first parameter, identified ...
Get Learning JavaScript now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.