组合模式解决原型创建对象传参和共享难题
//组合构造函数+原型模式 function Box(name,age){ //保持独立的用构造函数 this.name = name; this.age = age; this.family = ['哥哥','姐姐','妹妹'] }; Box.prototype = { //保持共享的用原型 constructor:Box, run:function(){ return this.name + this.age + '运行中...'; } }; var box1 = new Box('Lee',100); box1.family.push('弟弟'); var box2 = new Box('Jack',200); alert(box1.family); alert(box2.family); //引用类型没有使用原型,所以没有共享
使用这种混合模式很好的解决了传参和引用共享的大难题,是创建对象比较好的方法。