Javascript 原型,原型链

91 阅读1分钟

1.原型

js是基于原型的,原型就是一个可以被复制(或者叫克隆)的一个对象,通过复制原型可以创建一个一模一样的新对象,也可以说原型就是一个模板,利用原型创建出来的新对象实例会共享原型的所有属性和方法

  1. 每一个构造函数都拥有一个  prototype 属性, 这个属性指向一个对象,也就是原型对象
  2. 原型对象默认拥有一个   constructor 属性, 指向它的构造函数
  3. 每个实例对象都拥有一个隐藏属性  __proto__, 指向它的原型对象

2.原型链

原型链是原型对象创建过程的历史记录,当访问一个对象的某个属性时,会先在这个对象本身属性上查找,如果没有找到,则会去它的__proto__隐式原型上查找,即它的构造函数的prototype,如果还没有找到就会再在构造函数的prototype的__proto__中查找,这样一层一层向上查找就会形成一个链式结构

3.png