在jave script中使用构造函数来创建一个新对象,每个构造函数的内部都有一个 prototype 属性,它的属性值是一个对象,这个对象包含了可以由该构造函数的所有实例共享的属性和方法。
当访问一个对象的属性是,如果这个对象内部不存在这个属性,那么它就会去它的原型对象里找这个属性,这个原型对象又会有自己的原型,于是这么一直找下去,也就是原型链的概念了。
原型链的特点:jave script对象是铜环引用来传递的,创建的每一个新对象实体中并没有一份属于自己的原型副本。当修改原型是,与之相关的对象也会继承这一改变
原型链的指向:
p.__proto__ // Person.prototype Person.prototype.__proto__ // Object.prototype p.__proto__.__proto__ //Object.prototype p.__proto__.constructor.prototype.__proto__ // Object.prototype Person.prototype.constructor.prototype.__proto__ // Object.prototype p1.__proto__.constructor // Person Person.prototype.constructor // Person