只要创建一个新的函数就会创建一个prototype属性,这个额属性指向函数的原型对象,默认情况下所有的原型对象都会自动会的一个constructor属性,这个属性指向prototype属性所在函数的指针
原型链是原型对象创建过程的历史记录
原型?
prototype 就是原型,它是一个对象,我们也称它为原型对象
原型的作用?
数据共享,节约内存空间,实现继承
原型继承:子构造函数的原型指向父构造函数的原型
原型链的继承:
核心:让子类的原型指向父类的实例
优点:父类的方法可以复用
缺点:子类构建实例时,不能向父类传递参数
构造函数的继承:
核心:将父类构造函数的内容复制给了子类的构造函数,这是所有继承中唯一一个不涉及prototype的继承
优点:父类的属性不能共享,子类构建实例时,可以向父类传递参数
缺点:父类的方法不能复用子类实例的方法没次都是单独创建
寄生组合继承:最理想的继承方式
Female.prototype=new Person();//第一次调用父类构造函数
Female.prototype.constrcutor=Female;//因重写原型而失去constructor属性,所以要对constrcutor重新赋值