Functional inheritance function Animal() { var that = {}; that.eats = true; return that; } function Dog() { var that = Animal(); that.runs = true; return that; } var dog = Dog(); console.log(dog.eats); // true Functional inheritance by a constructor function Animal() { this.eats = true; } function Dog() { Animal.call(this); this.runs = true; } var dog = new Dog(); console.log(dog.eats); // true Prototype inheritance function Animal() { this.eats = true; } function Dog() { this.runs = true; } Dog.prototype = new Animal(); var dog = new Dog(); console.log(dog.eats); // true