ES5通过构造函数,模拟类的继承

2022-03-22T17:55:56.149Z阅读122
3
function Father(uname, age) {
   this.name = uname
   this.age = age
}
Father.prototype.fly = function () {
   console.log('I can fly')
}
function Son(uname, age, score) {
   Father.call(this, uname, age)
   this.score = score
}
Son.prototype = new Father()
Son.prototype.constructor = Son
Son.prototype.exam = function () {
   return 'I am better'
}
var son = new Son('aa', 11, 11)
console.log(son)
console.log(son.exam)
  • 构造函数的方法,一般需要放在原型对象上,这样可以共享方法,避免内存泄漏, 因为每实例化一个对象,就会开辟一块内存空间.
  • 继承属性,主要通过在子构造函数中,调用父构造函数,并且改变父构造函数的指向来实现,以此可以继承父构造函数的属性
  • 继承方法,主要通过将父类实例化后,将其赋值给子构造函数的原型对象,即可获得父类中的方法.(对原型对象赋值之后,一定要将constructor属性重新赋值)
  • -- 这里不能将 夫构造函数的原型对象直接赋值给子构造函数,那样在子构造函数所具备的方法,会同步到父构造函数上
*邮箱为选填, 若输入邮箱,您留言的回复,将在第一时间以邮件的形式通知您。
总共0条留言
No Data