Prototyped inheritance reminded
by podlipensky
JavaScript
function A(){
console.log('ctor A');
this.foo = function(){
document.write('foo | ');
};
}
A.prototype.protoFoo = function(){
document.write('proto foo | ');
};
Function.prototype.protoFoo = function(){
document.write('from function foo | ');
}
A.protoFoo();
function B(){
this.super.call(this);
console.log('ctor B');
this.bar = function(){
document.write('bar | ');
};
}
B.prototype.protoBar = function(){
document.write('proto bar | ');
};
function extend(subClass, superClass){
//console.log(superClass.prototype);
var F = function(){};
F.prototype = superClass.prototype;
var p = subClass.prototype;
subClass.prototype = new F;
subClass.prototype.constructor = subClass;
subClass.prototype.super = superClass;
subClass.prototype.old = p;
}
extend(B, A);
var b = new B;
b.foo();
b.protoFoo();
b.bar();
b.old.protoBar();