在 JavaScript 中每当定义一个函数数据类型时,都会天生自带一个 prototype 属性,指向函数的原型对象。当函数经过 new 调用时,这个函数就成为了构造函数,返回一个全新的实例对象。这个实例对象有一个 __proto__ 属性指向构造函数的原型对象。
JavaScript 对象通过 __proto__ 属性指向父类对象,父类对象通过 __proto__ 属性继续指向再上一级对象 ...,直到指向 Object 对象为止,这样就形成了一个原型指向的链条,即原型链。参见下图:
————————