javascript继承--原型链的 继承

作者的话:原型链是JavaScript中相当重要的一个知识点,这里我使用了函数结构图,来帮助我更好的理解

 1 /*
 2 原型链继承方式:
 3     通过改变一个对象的原型对象的指向来继承另一个对象
 4     原理:
 5         我们知道,一个对象的实例会继承他的原型对象的所有属性和方法。所以说,如果,我们继承对象的原型对象,是被继承对象的原型对象的实例的话,那么,他不就继承了被继承对象的原型对象的所有属性和方法了么
 6 */
 7 //创建一个被继承对象,并给他两个属性
 8 function a(){
 9     this.name = "兔子只吃胡萝卜";
10     this.age=12;
11 }
12 
13 /*
14     利用构造方法来创建继承对象
15 */
16 //创建一个继承对象,这里我们不给他设置任何属性
17 function b(){
18 }
19 //我们让继承对象的原型对象得到被继承对象的实例
20 b.prototype = new a();
21 //我们为继承对象创建一个实例
22 var b1 = new b();
23 console.log(b1.name);//"兔子只吃胡萝卜"
24 console.log(b1.age);//12
25 
26 /*
27     直接创建继承对象的实例
28 */
29 var c = {
30 };
31 c.__proto__ = new a();
32 console.log(c.name);//"兔子只吃胡萝卜"
33 console.log(c.age);//12

原型链继承中,存在着缺陷,其中,最明显的缺陷就是在使用引用类型的时候,会导致原型对象中,引用的数据发生改变,从而影响了我们需要使用的数据

原文地址:https://www.cnblogs.com/tangwanzun/p/6023964.html