原创: 前端二牛
![ca5384ef4caaf72700c057d4a2eb2f63.png](https://img-blog.csdnimg.cn/img_convert/ca5384ef4caaf72700c057d4a2eb2f63.png)
继承是面向对象语言中一个最为人津津乐道的概念。许多面向对象语言都支持两种继承方式:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际的方法。在ECMAScript中,函数没有签名,无法实现接口继承,只支持实现继承,继承主要依靠的是原型链。
先来看一个简单的原型链继承示例,如下图:
![d1398adcb8606335c5a1eb96bc7cbf5a.png](https://img-blog.csdnimg.cn/img_convert/d1398adcb8606335c5a1eb96bc7cbf5a.png)
首先声明一个 Human函数,给它的原型添加一个 getHumanSex方法。然后声明一个 Person函数,要让 Person继承 Human,能使用 Human的属性和方法,只要把 Person的原型重新赋值为 Human的一个实例就好了。最后给 Person的原型(也就是 Human的这个实例)添加一个 getPersonSex方法。现在创建 Person的一个实例 personObj, name='张三',age=12。如果访问 personObj.name,那么就可以直接访问到是 张三了。假如现在要访问 humanSex,因为 personObj中没有,所以会顺着 __