Book Image

Object-Oriented JavaScript

Book Image

Object-Oriented JavaScript

Overview of this book

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

Using a Mix of Prototypal Inheritance and Copying Properties


When you use inheritance, you will most likely want to take some existing functionality and then build upon it. This means creating a new object by inheriting from an existing object and then adding some 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 clone an existing object

  • Copy all of the properties of another object

    function objectPlus(o, stuff) {
      var n;
      function F() {}
      F.prototype = o;
      n = new F();
      n.uber = o;
    
      for (var i 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 by inheriting shape...