一、原型链
什么叫原型链?
任何一个对象都有原型对象,原型对象也是对象,那么原型对象也有原型对象,这样一环扣一环,就形成了一条链式结构,叫做原型链。
什么是原型?
构造函数的prototype 就是原型。一个对象的原型就是它的构造函数的prototype属性的值。
在讨论原型的时候,是指的 对象和原型对象 之间的关系。原型的作用:就是为了实现继承!
prototype是哪来的?(JS的引擎帮我们创建好的)
所有的函数都有一个prototype属性。当函数被创建的时候,prototype属性会自动创建和初始化。
构造函数的prototype属性的默认值是一个对象,这个对象只带有一个属性,constructor。
Person.prototype.constructor === Person 关系:true
对象在被创建的时候,原型就定下来了,那么其原型链也就确定下来了。
结论:
1、只要是 函数 就有 prototype 属性(★★★★★)
2、只要是 对象 就有 __proto__ 属性(★★★★★)
3、构造函数的 prototype 的类型是:"object"。