JS - Parasitic Inheritance

by Charlie Winfrey

JavaScript

// Parasitic Inheritance Example 1
// This uses an object and Object.create()
var originalObject = {
    id: 1,
    someFunction: function () {
        console.log(this.id);
    }
};

function augmentOriginal(o) {
    var that = Object.create(o);
    that.magicalExtraProperty = "sunshine";
    return that;
};

magicalOriginal = augmentOriginal(originalObject);

//console.log(magicalOriginal);

// Parasitic Inheritance Example 2
// This is using constructors

var OriginalObject = function (id) {
    this.id = id;
};

OriginalObject.prototype.someFunction = function () {
    console.log(this.id);
};

var magicalObject = function (id) {
    var that = new OriginalObject(id);
    that.magicalProperty = "sunshine";
    return that;
};

var magicalObject = magicalObject(1);
console.log(magicalObject);