js原型链及其完整结构图

版权声明:当前文章版权为本人所有,转载请提前联系本人,并附以地址说明。 https://blog.csdn.net/D_claus/article/details/85098615
  • 原型链 

  • 完整原型链 

1. 函数与 Function 的关系

    函数就是 Function 的实例. 即 Function 就是函数的构造函数.
        实例对象有一个继承的 constructor 属性, 该方法指向就是构造函数.
        自己定义一个函数( 任意的函数 ), 可以知道函数的 constructor 就是 Function
        得到结论 函数就是 Function 的实例.
    
    Function 也是函数, 那么有什么结论呢?
        Function 就是 Function 的实例. 即 自己就是自己的实例.

2. Object 与 Function
    -> Object 与 Function 的关系
        Object 是 函数, 因此在 Function 中, 它就是实例对象. 因此就构成一个三角形.

        可以使用 __proto__ 来访问对象的原型对象.
            在讨论 .prototype 的时候是通过 函数 访问原型
            在讨论 .__proto__ 的时候是通过 实例对象 访问原型
        
        在实际构建对象的时候, 扩展实例成员, 一般都使用 原型增加方法的形式( 原型继承 ).
            一般在使用的时候利用 构造函数.prototype 来添加, 不要使用 实例对象.__proto__ 来添加.

        原型继承的整个关系( 原型链 )
            可以知道所有的对象都有原型, 一步一步往上走, 都会汇集到 Object.prototype 中
            Object.prototype 是顶级的对象.

        Function.prototype 继承自谁?
            任意一个函数继承自 Function.prototype. 可以看做是 Function 的实例.
            而 Function.prototype 又是继承自 Object.prototype(原型).

猜你喜欢

转载自blog.csdn.net/D_claus/article/details/85098615
今日推荐