【红宝书p243继承之盗用父类构造函数】
1,查看继承后,子类父类的结构
<script>
function SuperType() {
this.colors = ["red", "blue", "green"];
}
function SubType() {
// 继承 SuperType
SuperType.call(this);
}
console.dir(SuperType);
console.dir(SubType);
</script>
2,查看子类实例、父类实例的结构
<script>
function SuperType() {
this.colors = ["red", "blue", "green"];
}
function SubType() {
// 继承 SuperType
SuperType.call(this);
}
let sup = new SuperType();
let sub = new SubType();
console.dir(sup);
console.dir(sub);
</script>
以上看出,子类实例化后拥有父类的属性
<script>
function SuperType() {
this.colors = ["red", "blue", "green"];
}
function SubType() {
// 继承 SuperType
SuperType.call(this);
}
let sup = new SuperType();
let sub = new SubType();
// 往子类实例的colors属性数组中添加元素
sub.colors.push('black');
console.dir(sup);
console.dir(sub);
</script>
以上看出,子类继承了父类属性,但对子类属性的操作,不会影响父类的属性,即使父类属性存在引用值的情况