js原型链、继承、this指向等老生常谈却依然不熟的知识点——记录解析

开始记录学习过程——

  很详细的解析过程——https://juejin.im/post/5c72a1766fb9a049ea3993e6

  借鉴阅读——https://github.com/KieSun/Dream/issues/2

prototype

  显式原型属性。

  只有函数才拥有该属性

  当我们声明一个函数的时候,这个属性就被自动创建了,这个属性的值是一个对象(原型),且只有一个属性constructor

_proto_

  每个对象都有的隐式原型属性。

  指向了创建该对象的构造函数的原型

  通过_proto_将对象和原型联系起来组成原型链,得以让对象可以访问到不属于自己的属性

  实例对象如何产生_proto_的?

  ——使用new操作符,生成的实例对象便有了_proto_属性

    调用new过程发生四件事:

      新生成一个对象;

      链接到原型;

      绑定this;

      返回新对象;

  总结:

    Object是所有对象的父亲,所有对象都可以通过_proto_找到他。

    Function是所有函数的父亲,所有函数都可以通过_proto_找到他。

    Function.prototype和Object.prototype是两个特殊的对象,由引擎创建

    除了这两个,其余的对象都是通过new构造的

    函数的prototype是一个对象,也就是原型。

    对象的_proto_指向原型

  

浅喜似苍狗,深爱如长风
原文地址:https://www.cnblogs.com/Zhang-jin/p/10430065.html