Understanding prototyping and augmentation
<p>I have a <a href="http://jsfiddle.net/zcWQ8/1/" rel="nofollow">fiddle</a> to help me in my understanding of JavaScript prototyping and inheritance.  The comments tell the story.  </p>

<pre><code>//From Douglas Crockford's "Javascript: the good parts":  a helper to hide the "ugliness" of setting up a prototype
Function.prototype.method = function(name,func) {
    this.prototype[name] = func;
    return this;
}

function SomeFunc(value) {
    this.setValue(value);
}

//Inherit the function (to me this conceptually the same as adding a member to a class)
SomeFunc.method('setValue', function (value) {
    this.value = value;
    return this;
});

try
{
SomeFunc(1);
}
catch(e)
{
    alert(e);
}
</code></pre>

<p>Why do I get an exception?  Are my notes correct in that what JavaScript calls inheritance is to a Classical programmer simply adding a new member to a class?  What is the difference between augmentation and inheritance?</p>
