原型链和继承
原型链: 它是继承的主要方法,其基本思想是让一个引用类型继承另外一个引用类型的属性和方法。 每个构造函数都一有一个prototype属性,它指向它的原型对象 原型对象包含了 该构造函数所创建的 所有实例 共享的 属性和方法 假如让一个原型对象等于另外一个类型的实例,那么该对象的实例可以访问另外一种原型的属性和方法。从而形成原型链 当我们调用一个对象的属性和方法时,首先在该对象自身属性查找,如果不存在就去自己的原型对象里找,如果还不存在,就向原型对象所关联的另外的原型对象里寻找。。如果有就返回,如果找到原型链的终点null时还没有找到,就返回undefined。 Object.prototype是所有对象的原型。 继承共有6种方法 原型链继承就是让子类型的原型等于父类型的实例,这种方法无法向超类型传递参数并且存在超类型包含引用类型的属性的问题,所以这种方法很少单独使用。 还有一种就是构造函数继承,就是在子类型当中使用call()来调用超类型的构造函数,这种方法解决了上述两种问题,但是函数复用无从谈起。 接下来是最常用的一种方法,组合使用原型链继承和构造函数继承,它综合了上述两种方法的优点,还解决了函数复用,引用类型属性,传递参数的问题。 其基本思想就是,使用原型链继承超类型的方法,使用构造函数继承超类型的属性。 这样一来,既可以让两个子类型的不同实例拥有自己的属性