面向对象(八)继承___ 05组合继承

title: 面向对象(八)继承___ 05组合继承 # 文章页面上的显示名
date: # 文章生成时间,一般不改
categories: # 文章分类目录,可省略
- 面向对象
tags: # 文章标签,可省略
- 面向对象
- 基于原型面向对象的继承 # 个数不限,单个可直接跟在 tags 后面


组合继承:原型 + 借用构造函数

01 借用构造函数实现继承:可以获得父构造函数中的实例属性 Person.call(this,name,age)
02 获得原型属性和方法 ( Boy.prototype = Person.prototype)


存在问题:原型共享带来的问题

Boy.prototype = Person.prototype 这是一个赋值操作,会把右边的地址复制一份给左边,指向内存中的同一块数据,一个原型对象的属性和方法,对另外一个也会有影响

解决方案:

01借用构造函数,可以获得实例父构造函数的实例属性
02通过深拷贝,把原型对象上面的属性和方法拷贝一份,复制给子对象,即拥有了属性和方法,也不共享了

你可能感兴趣的:(面向对象(八)继承___ 05组合继承)