js; overriding class functions

//overriding class functions in instances

var myapp7 = function(){

//+- abstract class
function oo(id){
var mm = {name : id};
this.mm = mm;
this.fshout = function(p){
fb(mm.name + ': ' + p);
}
this.fshoutloud = function(p){
fb(mm.name + ' shoutloud:' + p.toUpperCase());
}
}

var p1 = new oo('p1');
var p2 = new oo('p2');
var p3 = new oo('p3');

//b:2 overrides
p1.fshout = function(p){
fb('p1 OVERRIDE ' + this.mm.name + ':' + p);
}
p2.fshout = function(p){
fb('p2 OVERRIDE ' + this.mm.name + ':' + p);
}
//e:2 overrides

p1.fshout('jah1');
p2.fshout('jah2');
p2.fshoutloud('jah2');
p3.fshout('jah3');

};//end app7
var x = new myapp7();
function fb(p){console.log(p);}

Results in:
p1 OVERRIDE p1:jah1
p2 OVERRIDE p2:jah2
p2 shoutloud:JAH2
p3: jah3

See also:
Creating JavaScript Classes, Part 3: Method Inheritance by Jason S. Kerchner on Feb 24, 2009