原型的概念
1.每一个构造函数(普通函数也有原型)都有一个原型对象,也叫prototype(原型属性),他保存了构造函数创建的一类实例的共有的方法
2.每一个对象都有一个__proto__属性,这个属性(在对象被创建的时候自动) 指向了 自己构造函数的原型
什么是原型链
每一个对象 都有一个 属性 __proto__ 属性,这个属性叫原型对象(arr1.__proto__) -》构造函数的.prototype,
原型也是一个对象,所以他也有自己的原型, arr.__proto__.__proto__,
以此类推,直到Object.prototype 的原型为止,因为 Object的原型的原型为null
绿色的线表示原型链,当zs实例调用一个属性或者方法时,现在自身找,然后一层一层的向上,直至找到null.没有则返回undefined
图中的Objct,是构造方法
作用
我们使用一个对象的属性或者方法的时候,会先在自身内存中找,找不到就去自己原型中找,
原型也是一个原型,如果找不到就去原型的原型中。直到直到Object.prototype 为止