继承

1.原型链继承    :继承方法

每一个构造函数都有一个原型对象 :  Parent.prototype

每个实例都有一个指向原型对象的指针  :  par.__proto__


原型链继承是通过创建Parent的示例,并把它挂载到Son的原型对象上实现的。

实例化对象son1调用sayName方法:1)会从实例自身找,如果有,停止往下寻找

                                                            2)否则,会从son1的原型  son1.__proto__,也就是Son.prototype去找

                                                            3)Son.prototype挂载着Parent的实例化对象,现在自身属性上找,没有,然后实例化对象也有自己的                                                                         __proto__,指向原型对象 , Parent.Prototype,找到了sayName方法

//原型链问题   :构造函数上如果有定义了引用类型的属性会被所有实例公用

2.借用构造函数继承  :继承属性

原理:通过call()  改变this指向


3.组合继承  (原型链+借用构造函数继承)


原型链继承方法,借用构造函数继承属性

4.原型式继承

要求 有一个对象可以作为另一个对象的基础,传入一个对象,返回一个把这个对象赋值给返回对象的原型上,实现继承

和原型链继承相似,person.color因为是引用类型的属性。,所以会被object实例化出来的实例共享

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。