前端学习总结-原生js之继承

前端学习的总结,如果以后发现错误或有新的理解再继续补充。

1.什么是继承?
暂时理解为让一个js对象拥有另一个js对象的属性和方法。

2.继承的实现方式
原型链继承,构造函数继承,组合继承,原型继承,寄生继承,寄生组合继承等。
每一种继承的实现方式都有它的优点和缺点,寄生组合继承相对来说完美一点,但是实现较为繁琐,ES6中的extends用的就是寄生组合继承。

原型链继承:通过原型链实现继承,让一个实例对象的构造函数的prototype属性指向另一个构造函数的实例对象。

构造函数继承:通过在函数中用call或者apply调用另一个对象的构造函数来实现继承该对象的属性和方法。

组合继承:结合原型链和构造函数继承,即为组合继承。组合继承会实现实例化俩遍父对象构造函数,这是他的缺点。

原型继承:在一个函数中实例化另一个函数获取实例对象,再对该实例对象添加属性或方法增强该对象,最后将该对象作为返回值返回。

寄生继承:在函数中,用Object()方法克隆一个对象,添加属性或方法来增强该对象,然后将该对象作为返回值返回。

寄生组合继承:结合寄生继承和组合继承的方法,可以规避需要实例化俩遍函数的缺点。

你可能感兴趣的:(前端学习总结)