继承
js实现的是实现继承/也就是继承实际的方法
//主要依赖:原型链
//基本思路: 就是一个引用类型继承另一个引用类型的属性和方法
详细:构造函数,实例,原型之间的关系。每个构造函数都有一个原型对象,原型对象都包含一个指针指向构造函数
每个实例都包含一个内部指针指向原型。假如我们让一个原型对象等于宁一个类型的实例。此时的原型对象将包含一个
内部指针指向另一个原型。以此类推。。。
默认的原型
所有引用类型都默认继承了Object。而这个继承也是通过原型链实现的。
所有函数的默认原型都是Object的实例
这也就是为什么所有自定义类型都会继承toString()等默认方法。
谨慎定义方法
继承的时候
子类重写原型中的方法会屏蔽原型的方法。但是不改变原型中的这个方法
子类调用是新方法,原型调用还是原来的方法
原型继承的时候,不要使用字面量方法,字面量方法会重写原型链
原型链的问题
1.引用类型的值问题
2.不能像超类型的构造函数中传递参数。没有办法在不影响实例的情况下。给超类型的构造函数传递参数