练习:继承

107 阅读1分钟

原型继承

function A(name1){
  this.name1 = name1
}
A.prototype.fn = ()=>{}

function B(name1,name2){
  A.call(this, name1)
  this.name2 = name2
}
// 写法1
B.prototype = Object.create(A.prototype)
// 写法2
B.prototype.__proto__ = A.prototype
// 写法3
const empty = function(){}
empty.prototype = A.prototype
B.prototype = new empty()
// 以上三种都需要下面
B.prototype.constructor = B

class继承

class A{
  constructor(name1){
    this.name1 = name1
  }
  fn(){}
}
class B extends A{
  constructor(name1, name2){
    super(name1)
    this.name2 = name2
  }
}