Using a mix of prototypal inheritance and copying properties
When you use inheritance, you will most likely want to take already existing functionality and then build upon it. This means creating a new object by inheriting from an existing object and then adding additional methods and properties. You can do this with one function call, using a combination of the last two approaches just discussed.
You can:
Use prototypal inheritance to use an existing object as a prototype of a new one
Copy all of the properties of another object into the newly created one
function objectPlus(o, stuff) { var n; function F() {} F.prototype = o; n = new F(); n.uber = o; for (vari in stuff) { n[i] = stuff[i]; } return n; }
This function takes an object o
to inherit from and another object stuff
that has the additional methods and properties that are to be copied. Let's see this in action.
Start with the base shape
object:
var shape = { name: 'Shape', toString: function () { return this.name; } };
Create a 2D object...