Copying properties
Now, let's try a slightly different approach. Since inheritance is all about reusing code, can you simply copy the properties you like from one object to another? Or from a parent to a child? Keeping the same interface as the preceding extend()
function, 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, of course, carry over methods too, as methods are just properties that happen to be functions.
function extend2(Child, Parent) { var p = Parent.prototype; var c = Child.prototype; for (vari 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 handy access to parent's methods from the child. Unlike the previous example though, it's not necessary to reset the Child.prototype.constructor
because here the child prototype is augmented...