//完美的继承,是让属性和方法分别分开继承。
<script>
function SuperType(name){
this.name = name;
this.color = ["red","blue","green"];
}
SuperType.prototype.sayName = function(){
console.log(this.name);
};
function SubType(name,age){
SuperType.call(this,name); //完美
this.age = age;
}
//SubType.prototype = new SuperType(); //这句改为一下三句。
var F = function(){}; //完美
F.prototype = SuperType.prototype; //完美
SubType.prototype = new F(); //完美
SubType.prototype.constructor =SubType; //完美
SubType.prototype.sayAge = function(){
console.log(this.age);
};
var instance1 = new SubType("Nick",29);
instance1.color.push("black"); //["red","blue","green","black"]
console.log(instance1.color);
var instance2 = new SubType("Greg",30);
console.log(instance2.color); //["red","blue","green"]
console.log(SuperType.prototype);
console.log(SubType.prototype);
</script>