Currently Browsing: Home » 5 Must-Reads on JavaScript Inheritance

5 Must-Reads on JavaScript Inheritance

Do you know inheritance in JavaScript? Do you truly understand how it works? Are you aware that JavaScript uses a prototypal inheritance scheme that is often disfavored or disliked? Have you used a script on the web to adapt this scheme to classical inheritance?


In these past few days, I’ve been writing a jQuery slider plugin with various transition effects. To make the code succinct, I decided to use a base Transition object that other objects, which define a specific type of transition, inherit from. This led me to the question of JavaScript inheritance.

Inheritance in JavaScript has been a controversial subject. Should a standard be set to use classical inheritance or should the base prototypal system be favored? Both paths have their own advantages and disadvantages. The readings listed below will hopefully give you enough information to choose which method you want to use.

1. Private Members in JavaScript

This reading isn’t really about inheritance, but it’s an important primer on object-oriented programming in JavaScript which will help give you a deeper understand of what is to come.

Private Members in JavaScript

2. Simple JavaScript Inheritance

John Resig, the creator of the jQuery JavaScript library, presents his own take on inheritance. Using his utility, it’s possible to change JavaScript into more of a classical inheritance scheme.

Simple JavaScript Inheritance

3. JavaScript Inheritance via Prototypes and Closures

Steffen Rusitschka explains the advantages and disadvantages of prototype-based and closure-based (more classical) inheritance. He also presents his own derivative of Resig’s script.

JavaScript Inheritance via Prototypes and Closures

4. Classical Inheritance in JavaScript

This reading, by Douglas Crockford, a well-known JavaScript developer, is yet another way to achieve the classical inheritance scheme in JavaScript. In addition to presenting his extension, Crockford also explains the added functionality that JavaScript can provide.

Classical Inheritance in JavaScript

5. Prototypal Inheritance in JavaScript

In this reading, Crockford analyzes his old classical inheritance and realizes the benefits of sticking with the prototypal structure. This last article expresses the flip side of the controversy, explaining why there is no need for a classical inheritance scheme.

Prototypal Inheritance in JavaScript

Hopefully, these links have shed light on the debate between prototypal inheritance and classical inheritance. Although I used Resig’s script in my slider plugin, I recently came across Crockford’s prototypal inheritance article (#5) and am now rethinking my ways for future projects.

So, what’s your take on JavaScript inheritance? Leave a comment below. I would be glad to hear more arguments for either side!


This entry was posted on Sunday, June 20th, 2010 at 16:01:06. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply

Want to be notified when someone replies? Subscribe to this post's comment RSS feed.
Any field marked with a * is required.