Is it true that Javascript, before ECMA-262 or ECMA 5.1, doesn't have pseudo-classical inheritance or prototypal inheritance support?
<p>The reason is that, although we can use pseudo classical inheritance in Javascript, we actually have to implement our own <code>extend</code> or <code>inherit</code>.</p>

<p>What about the prototypal inheritance -- I think it does have the feature that if <code>foo.bar</code> is used, if <code>bar</code> is not a property of <code>foo</code>, the interpreter or the compiled code (such as if using Google V8) will go up the prototype chain, but there is no built in method to make object <code>b</code>'s hidden prototype property point to <code>a</code> as a prototypal chain.  We have to add it by defining a <code>clone()</code> function or <code>Object.create()</code>.  What's more, I think I see in the pure prototypal inheritance code that there is no constructor whatsoever.  So it looks like in prototypal code, there is no constructor (constructor functions).  But if we use prototypal inheritance, we actually have to implement <code>clone()</code> using a constructor -- which is more like the pseudo classical inheritance side.</p>

<p>So it does seem that the original Javascript is actually neither Pseudo-classical nor Prototypal inheritance?  I read that it needed to be out on the market within 10 days, or else something worse would have come out to the market, according to <a href="http://en.wikipedia.org/wiki/Brendan_Eich" rel="nofollow">this Wikipedia article</a>.  But I also wonder somewhat, why the 1 year or 2 years after Javascript came out in 1995, at least the Netscape version of Javascript didn't add an <code>extend</code> and <code>Object.create()</code> method already?</p>

<p>This question aims to understand and clarify some concepts in the pseudo-classical and prototypal part of Javascript.  And is it true -- the original Javascript does not by itself have pseudo-classical or prototypal inheritance support?</p>
