对象冒充 实现多继承
注意:原型链时不支持多继承的
// 对象冒充实现类的多重继承 var ClassA=function (color){ this.color = color; this.sayColor = function(){ console.log(this.color); } }; var ClassB=function (name){ this.name = name; this.sayName = function(){ console.log(this.name); } };
//C 同时继承 A和 B var ClassC=function(color,name){ //把ClassA作为常规函数来建立继承机制,而不是作为构造函数 ClassA.call(this,color); ClassB.call(this,name); }; var objA=new ClassA('red'), objB=new ClassB('George'), objC=new ClassC('blue','Nicholas'); objA.sayColor(); //red objB.sayName(); //George objC.sayColor(); //blue objC.sayName(); //Nicholas