答:JS 继承实现⽅式也很多,主要分 ES5 和 ES6 继承的实现
-
先说⼀下 ES5 是如何实现继承的
ES5 实现继承主要是基于 prototype 来实现的,具体有三种⽅法
⼀是实例继承:即 B.prototype=new A() 让 b 的原型等于 a 的实例⼆是借⽤构造函数继承(call 或者 apply 的⽅式继承)
function B(name,age) {
A.call(ths,name,age)
}
三是组合继承
组合继承是结合第⼀种和第⼆种⽅式 -
再说⼀下 ES6 是如何实现继承的
ES6 继承是⽬前⽐较新,并且主流的继承⽅式,⽤ class 定义类,⽤ extends 继承类,⽤ super()表示
⽗类,【下⾯代码部分只是熟悉,不⽤说课】
例如:创建 A 类
class A {
constructor() {
//构造器代码,new 时⾃动执⾏
}
⽅法 1( ) { //A 类的⽅法 }
⽅法 2( ) { //A 类的⽅法 }
}
创建 B 类并继承 A 类
class B extends A {
constructor() {
super() //表示⽗类
}
}
实例化 B 类: var b1=new B( )
b1.⽅法 1( )