02.javascript中的原型

本文主要总结javascript 中的继承实现,主要包括原型继承,构造函数继承和组合继承。但在之前还需要巩固一下原型相关的知识


1.构造函数,原型对象,和对象实例的关系

    1)文字描述三者之间的关系:

        1.每个构造函数都有一个原型对象;

        2.原型对象都包含一个指针指向构造函数;

        3.实例都包含一个指向原型对象的指针;

        4.构造函数通过new关键字创建对象实例

    2)代码演示:

代码演示

    3)图解关系

图解关系


图解关系

小结:通过上述的文字,代码,和图片应该可以明白构造函数,原型对象和对象实例之间的关系。

            那么,考虑一个问题:

            如果将原型对象等于另一个对象的实例,会怎样??这个问题就引出了js中的原型链问题!!


2.原型链

    1)原型链的形成过程:

        a:在第一小节末尾,我们提出了一个问题:  如果将原型对象等于另一个对象的实例,会怎样??

        b:答案就是:这样的操作会形成原型链

        c:原因:让当前的原型对象等于另一个对象的实例,那么,当前原型对象中就会包含一个指向另一个原型对象的指针,相应的,另一个原型中也包含着一个指向另一个构造函数的指针。

        如果在上述的赋值基础上继续进行进行相同的操作,就会形成原型链。

        (有点绕,可能不好理解,下面有图 帮助 理解)

    2)图解原型链

        a:基本的构造函数,原型对象和对象实例之间的关系


基本关系代码


基本关系图


     b:将Person对象的实例赋值给Teacher.prototype


将Person对象的实例赋值给Teacher.prototype

    上图中最后一行代码对应的图解:


图解1


图解2




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

推荐阅读更多精彩内容