原型对象,原型链,隐式原型

原型对象:每一个构造器中都有一个属性叫做prototype,他的值是一个对象,这个对象我门叫做 原型对象。

隐式原型:每一个对象都有一个属性叫做proto,他指向了创建这个对象的构造器的原型对象。

原型链:是一个对象属性的查找机制,对象先在自己的私有属性中找,找不到就沿着proto去构建这个对象函数的构造器的原型对象中找,如果还找不到,就继续沿着proto去构造 对象的构造器的原型对象的构造器的原型对象中去找。

如下图:Array是一个构造器,var arr= new Array,可以认为是Array构造了arr, arr的proto指向Array的原型对象,而Array的原型对象的proto指向Object的原型对象,由于Object是最顶层的,Object的proto指向null,在JS中万物皆来自虚无。构造器的prototype指向原型对象,构造器构造出来的对象arr的proto指向构造器的原型对象
原型对象,原型链,隐式原型

当arr要找一个属性时,现在自己的私有属性中找,找不到就去Array的原型对象中去找,如果还找不到就去Object的原型对象中去找,如果Object的对象中也没有,就报错。