//js继承
function classA(msg)
{
this.age = 23;
this.name = 'luowen';
if(typeof classA._initialed == 'undefined')
classA.prototype.sayHi = function(){alert('hello');}
classA.initialed = true;
}
//原型冒充方法
function classB(msg,age)
{
this.newMethod = classA;
this.newMethod(msg);
delete this.newMethod;
//overwrite age property
this.age = age;
}
//call方法实现
function classB(msg,age)
{
classA.call(this,msg);
this.age = age;
}
//apply方法实现
function classB(msg,age)
{
classA.apply(this,arguments);
this.age = age;
}
//原型链继承,确保没有参数
function classB(){
}
classB.prototype = new classA();
var oClassB = new classB();
console.log(oClassB.sayHi());