Skip to content

Instantly share code, notes, and snippets.

@bcelenza
Created December 18, 2012 02:41

Revisions

  1. bcelenza created this gist Dec 18, 2012.
    32 changes: 32 additions & 0 deletions gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,32 @@
    // create the base task object
    var task = {
    getName: function() {
    return "Frank";
    }
    }

    // now create a new timedTask object based on the task object
    var timedTask = Object.create(task);

    // specify any differences between timedTask and task.
    // This is actually called 'differencial inheritance', for the curious
    timedTask.getDuration = function() {
    return 42;
    }

    // do some tests
    console.log(task.getName()); // returns 'Frank'
    console.log(task.getDuration()); // ERROR: getDuration undefined
    console.log(timedTask.getName()); // returns 'Frank'
    console.log(timedTask.getDuration()); // returns 42

    // create more objects!
    var myTimedTask1 = Object.create(timedTask);
    // override the duration for timed task 1
    myTimedTask1.getDuration = function() {
    return 0;
    }

    var myTimedTask2 = Object.create(timedTask);
    var myTimedTask3 = Object.create(timedTask);
    var myTimedTask4 = Object.create(timedTask);