js的继承
ES6 的继承:子 extends 父,哪里继承哪里写一个super()
代码:
class Parent{
constructor(){
this.age=18
}
}
class Child extends Parent{ //子继承父
constructor(){
super() //加上super(),要不然会报错
this.age=18
}
}
let o = new Child()
原型链的继承:将子类的原型指向父类的实例即可
缺点:
1.创建子类实例时,无法向父类构造函数传参
2.父类的所有引用属性
会被所有子类共享,更改一个子类的引用属性,其他子类也会受影响
代码:
function Parent(){
this.age=20
}
function Child(){
this.name="王五"
}
Child.prototype=new Parent() //给子的原型上new
let o = new Child()
优点:能实现属性的继承,也可以在子类型创建实例时为父类型传递参数。
缺点:无法继承父类原型上的属性与方法
代码:
function Parent(){
this.age=20
}
function Child(){
this.name="王五"
Parent.call(this)
}
let o = new Child()
组合式继承:就是结合构造函数继承和原型链继承实现的
核心:使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承
function Parent(){
this.age=20
}
function Child(){
this.name="王五"
Parent.call(this)
}
Child.prototype=new Parent()
let o = new Child()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律