设计思想:利用原型
让一个引用类型继承另一个引用类型的属性和方法。
核心代码:
Man.prototype = new Person();
;
子对象的原型指向父对象的一个实例
代码实现:
function Person() {
// 私有属性定义
this.personName = 'person';
}
// 复用方法在原型链定义
Person.prototype.getPersonName = function() {
return this.personName;
}
// 声明子对象
function Man() {
// 构造函数内定义私有属性
this.manName = 'man';
}
// 修改默认的prototype指向,new 父对象的实例
Man.prototype = new Person();
// 其次声明子对象的复用方法
Man.prototype.getManName = function() {
return this.manName;
}
var man1 = new Man();
注意:给原型添加复用方法一定要放在修改原型之后
缺点:
1、引用类型值的原型属性
会被所有实例共享;
2、创建子类型的实例
时,不能向父类型的构造函数传参
。