目录
缺点:改变s1的play属性,会发现s2也跟着发生变化了,这是因为两个实例使用的是同一个原型对象,内存空间是共享的,基本数据类型字符串没有跟着发生变化,这里是这个play数组跟着发生变化了
缺点:相比原型链继承方式,父类的引用属性不会被共享,优化了原型链继承继承方式的弊端,但是只能继承父类的实例属性和方法,不能继承原型属性或者方法
什么是继承?
继承可以使得子类具有父类别的各种属性和方法,而不需要再次编写相同的代码
在子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能
一、class 类继承
class Car{
constructor(color,speed){
this.color = color
this.speed = speed
// ...
}
}
在继承color、speed的同时,也可以重新定义某些属性、并重写或者覆盖某些属性和方法:
class Truck extends Car{
constructor(color,speed){
super(color,speed)
this.color = "black" //覆盖
this.Container = true // 货箱
}
}
二、原型链继承
原型链继承是比较常见的继承方式之一,其中涉及的构造函数、原型和实例,三者之间存在着一定的关系,即每一个构造函数都有一个原型对象,原型对象又包含一个指向构造函数的指