1、原型

1.每一个构造函数都有一个原型对象,原型对象都有一个constructor指针指向构造函数。
2.每一个实例都有一个指针(proto)指向原型对象。
3.实例继承原型对象的所有方法。
2.jpg

2、原型链

  1. 如果让一个原型对象等于另一个类型的实例,那么此时的原型对象将有一个指向另一个原型对象的指针,假如另一个原型对象又是另一个类型的实例,那么上述关系依然成立,如此层层递进,就形成实例与原型之间的链条,这就是原型链的概念。
  1. // 举例说明
  2. // 动物类型构造器
  3. function MadeAnimal() {
  4. this.type = '动物';
  5. }
  6. // 创建一个动物的实例
  7. var animal = new MadeAnimal();
  8. // 猫类型构造器
  9. function MadeCat(name,age) {
  10. this.name = name;
  11. this.age = age;
  12. }
  13. // 让猫的原型对象等于动物类型的一个实例
  14. MadeCat.prototype = animal;
  15. var cat = new MadeCat('小花猫',2);

f4b31d5328f4be3a5b522bd29219618.jpg