Book Image

Object-Oriented JavaScript

By : Stoyan Stefanov, Stoyan STEFANOV
Book Image

Object-Oriented JavaScript

By: Stoyan Stefanov, Stoyan STEFANOV

Overview of this book

Table of Contents (18 chapters)
Object-Oriented JavaScript
About the Author
About the Reviewers
Built-in Functions
Regular Expressions

Copying Properties

Now let's try a slightly different approach. Since inheritance is about reusing code, you can simply copy properties from the parent to the child. Keeping the same interface as the extend() function above, you can create a function extend2() which takes two constructor functions and copies all of the properties from the parent's prototype to the child's prototype. This will include methods, as methods are just properties that happen to be functions.

function extend2(Child, Parent) {
  var p = Parent.prototype;
  var c = Child.prototype;
  for (var i in p) {
    c[i] = p[i];
  c.uber = p;

As you can see, a simple loop through the properties is all it takes. As with the previous example, you can set an uber property if you want to have easy access to parent's methods from the child. Unlike the previous example though, it is not necessary to reset the Child.prototype.constructor because here the child prototype is augmented, not overwritten completely, so the constructor...