JS原型链判断

51 阅读1分钟

原型链图关系

构造函数有prototype属性,它指向的是一个对象,凡是用构造函数创建的实例都会有一个[[Prototype]]属性,它指向的就是构造函数的prototype。

function Fn(){}

const obj = new Fn();

图关系 请添加图片描述 关键点

  • 函数才有prototype属性
  • prototype属性大部分情况是个对象(实例对象)

判断点

  1. obj.__proto__ === Fn.prototype
  2. Fn.prototype.__proto__ === Object.prototype
  3. Fn.__proto__ === Function.prototype === Function.__proto__ === Object.__proto__
  4. Object.prototype.__proto__ == null

其中__proto__获取的是对象的[[Prototype]]属性值,可以使用JS中的Object.getPrototypeOf()实现