组合模式解决原型创建对象传参和共享难题

//组合构造函数+原型模式
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);        //引用类型没有使用原型,所以没有共享

使用这种混合模式很好的解决了传参和引用共享的大难题,是创建对象比较好的方法。

原文地址:https://www.cnblogs.com/littlefly/p/3917931.html