混合模式即“构造函数模式”和“原型模式”的混合。在混合模式构造对象的过程中,JS对象共享着对相同方法的引用,然后又保证了每个对象的实例可以有自己的私有属性。最大限度的节省了内存,并且语义清晰。

具体的示例如下所示:
function Person(name,age,family){ //创建一个person对象,js中函数即可理解为对象
this.name = name; //私有属性
this.age = age;
this.family = family;
}

Person.prototype = { //通过给原型添加方法,实现该对象的公有方法。
constructor: Person, //每个函数都有prototype属性,指向该函数原型对象,原型对象都有constructor属性,这是一个指向prototype属性所在函数的指针
say: function(){
alert(this.name);
}
}

var person1 = new Person(“lisi”,21,[“lida”,”lier”,”wangwu”]);
console.log(person1);
var person2 = new Person(“wangwu”,21,[“lida”,”lier”,”lisi”]);
console.log(person2);

这样的创建js对象的模式,就和java等语言创建的类更像了。也更符合逻辑和现实需要。