JS原型、原型链

179 阅读1分钟

1.什么是原型?

在JavaScript中原型是一个prototype对象,用于表示类型之间的关系。

原型对象的用途是为每个实例对象存储共享的方法和属性,它仅仅是一个普通的对象而已。并且所有的实力是共享同一个原型对象,因此有别于实例方法或属性,原型对象仅有一份。

每个对象都有原型(null和undefined除外),可以理解为对象的默认属性和方法。

2.什么是原型链?

JavaScript只有一种结构:对象。每个实例对象(Object)都有一个私有属性(称为__proto__)指向它的构造函数的原型对象(prototype)。该原型对象也有一个自己的原型对象(proto),层层向上直到一个对象的原型对象为null。

原型链.png

访问路径:

  • 一直往上层查找,直到null还没有找到,则返回undefined
  • Object.prototype.proto === null
  • 所有从原型或更高级原型中得到、执行的方法,其中的this在执行时,指向当前这个触发事件的对象