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