组合构造函数+原型模式
function Box(name,age) { //独立的属性用构造函数
this.name=name;
this.age=age;
this.family=['aa','cc','dd'];
}
Box.prototype={ //保持共享的用原型
constructor:Box;
run:function() {
this.age+this.name+this.family;
}
};
动态原型模式= ==组合构造函数+原型模式==
function Box(name,age) { //独立的属性用构造函数
this.name=name;
this.age=age;
this.family=['aa','cc','dd'];
if(typeof run != 'function') { //在这里增加了判断
//原型的初始化只需要一次
Box.prototype={ /保持共享的用原型
constructor:Box;
run:function() {
this.age+this.name+this.family;
}
};
}
}
寄生构造函数===工厂模式+构造函数==
就是在工厂模式下 实例化对象