js--原型和原型链

js--原型和原型链

desc

提到js,原型和原型链是规避不过的,这之中存在几个容易混淆的概念,理解这些概念后,原型和原型链也就理解了

pic

在这里插入图片描述

名词解释

构造函数

  • 简单来说,构造函数一个函数而已,不同的是它可以用来创建对象(使用new操作符调用)
  • function Person(){} 这段代码中Person就是构造函数

实例

  • 使用构造函数创建出来的对象
  • let p=new Person() 这段代码中的p就是构造函数的一个实例

原型对象

  • 本质也是一个对象,它的constructor属性指向实例的构造函数
  • 这里Person.prototype就是原型对象,Person.prototype.constructor属性指向构造函数Person
  • 实例p可以通过__proto__属性访问其原型对象

查找机制

  • 上述原型对象Person.prototype也是有自己的原型对象的,就是Object.prototype
  • 换句话说,Person.prototype是Object.prototype的一个实例
  • 自身没有的属性,会去原型上查找,这个查找过程就是原型链查找,上述蓝线就是一整条原型链

验证

  • 下面来几行输出验证我们的猜想

在这里插入图片描述