6.3 继承——原型链

6.3.1原型链

1:基本概念

  原型链:每个构造函数都有一个prototype,每个prototype都包含一个指向构造函数的指针,而每个实例都包含一个指向prototype的内部指针。当

          当我们令一个prototype等于另一个类型的实例,此时这个prototype就继承了另一个类型的prototype。

2:原型搜索机制

  当我们读取一个属性时的过程:①实例属性②实例.prototype③实例.prototype.prototype……最后搜索Object prototype

3:默认的原型Object

  所有函数的默认原型都是Object的实例,因此默认原型都会包含一个内部指针,指向Object.prototype,所以所有自定义类型也都会继承toString(),valueOf()等默认方法的原因

4:谨慎的定义方法

  ①给原型添加方法的代码一定要放在替换原型的语句之后

    //替换原型,继承superType()
    subType.prototype = new SuperType();
    //添加新方法
    subType.prototype.getSubValue = function(){
    return this.subproperty; 
};

  ②通过原型链实现继承时,不能使用对象字面量创建原型方法,这样会重写原型链

原文地址:https://www.cnblogs.com/cndotabestdota/p/5715138.html