Tra l'altro dimenticavo una cosa importante. Dire che JS non possieda le classi in realtà è falso. Semplicemente le classi non possono essere "dichiarate" (in quanto sostituite dai costruttori), ma fanno parte di ciò che eredita un oggetto:

codice:
function SpecialObject () { }

var a = new Object(); // creo un oggetto generico vuoto
var b = new SpecialObject(); // creo un oggetto "speciale" (si fa per dire, perche' e' vuoto esattamente come un oggetto generico)

alert(a instanceof Object); // true
alert(a instanceof SpecialObject); // false
alert(b instanceof Object); // true
alert(b instanceof SpecialObject); // true
Gli oggetti hanno "memoria" delle loro origini. Si tratta del concetto di classe a tutti gli effetti, estendibile a molti livelli di "eredità"…