js中一切皆为对象,其中函数也是一种对象, 而每个函数都有一个prototype属性,其值也是一个对象。
一、prototype的作用
1. 在多个实例对象之间共享数据和方法。
2. 通过原型链实现继承。
二、原型链:
1. 关系到构造函数,原型对象,实例对象。
2. 每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而构造函数的实例对象都有一个指向原型对象的内部指针。
3. 如果让原型对象等于另一个构造函数的实例对象,则此时原型对象内部也包含一个指向另一个构造函数的原型对象的指针。
4. 而此构造函数原型对象,也包含指向构造函数的指针。
5. 如果让此构造函数原型对象等于第三个构造函数的实例,则会重复,3,4步骤,这样就形成了一个原型对象和实例的链条关系。