上次我们了解到了原型链的应用,我们发现了这样的继承方式会造成很多我们不想去继承的属性也会继承过来,这样的去使用它效率是非常低下的。
apply和call也勉强可以算是继承的一种方式。相对于上一种方式,这种方式的继承很大的提升了性能。但是这个方式不能使用它的原型,且每次运行都会默认去执行两个方法。
下面是我们的一种方法,
通过直接操作对象属性去实现,这样的效率比较低下。
Target继承Origin的属性,这样对象一旦创建出来就会直接拥有父类祖先Origin。
这也是一个function。需要在声明后去执行才会进行操作。
然而这些方法还有一个比较致命的缺陷那就是这样继承会导致一个子类修改父类,另外一个子类的属性也会跟着改变。、
圣杯模式,是如今使用的方式
中间加了一个空的父类后,这个缺陷得以完善。
以此可以得到封装函数。
最后一条为找到真正继承于谁的作用的函数。