画原型链

39 阅读1分钟

画出这段代码的原型链

function f(){};
const f = new f();
  • 需要关注三个对象
    1. 实例对象关注[[prototype]]
    2. 原型对象关注[[prototype]]、constructor
    3. 函数对象关注[[prototype]]、ProtoType
  • 逻辑划分
    1. 先画出f,F,和F.prototype的三角关系(手绘黑色)
    2. 再根据F.prototype画出Object的三角关系(手绘蓝色)
    3. 再根据F画出Function的三角关系(手绘绿色)
    4. 画出Function和Object两个的关系(手绘绿色)
  • 注意点
    1. Object.prototype的[[prototype]]是null
    2. Function自身也是Function,所以Function的[[prototype]]是Function.prototype.(相当于我构造我自己)

手绘.jpg

new_F原型链.png