JS面向对象之继承

js中是没有继承这一语法的,而现在js是面向对象去编程。所有需要我们通过一定的方式去达到继承这一语法,继承在实际开发中起到很大的作用,对于类型相同具有共同属性的可以抽取出来成一个对象,实现代码的重用。上代码:

第一种使用原型对象来实现

JS面向对象之继承
JS面向对象之继承
缺点:当创建多个学生对象时,父对象只能设置一次属性。通俗说,只能继承一个学生属性。不可取。

第二种是借用构造函数

核心是使用call()方法,改变this指向
JS面向对象之继承
JS面向对象之继承
借用构造函数实现了属性的继承,但是方法又该如何解决?
JS面向对象之继承
该方法可行,但不可取,对象方法的定义不推荐在构造函数中定义,因为每当你创建该对象的时候,sayHi方法都得在栈区开辟一块内存。创建多了,运行就变慢了。哪相同方法该如何去定义呢?

第三种组合函数

组合函数=原型对象实现+借用构造函数实现
JS面向对象之继承
借用构造函数来继承父对象的属性,原型对象来继承父对象的方法。