创建自定义类型的常见方式就是组合使用构造函数模式与原型模式一起使用.
构造函数模式用于定义实例对象的特有的部分(属性和方法),原型模式用于定义共享的部分.
这样最大限度的节省了内存的开销.
1 function Human(name, sex) { 2 this.name = name; 3 this.sex = sex; 4 this.getWife=function(){//娶老婆 5 if (this.sex == "男") { 6 return "我要娶老婆"; 7 } 8 else 9 return "我不用娶老婆"; 10 } 11 } 12 Human.prototype.say = function () { 13 alert(this.name); 14 } 15 var man = new Human("吕布", "男"); 16 var woman = new Human("貂蝉", "女"); 17 alert(man.getWife());//我要娶老婆 18 alert(woman.getWife());//我不用娶老婆 19 alert(man.getWife == woman.getWife);//false 20 alert(man.say==woman.say);//true
这种组合模式发挥了函数构造模式和原型模式各自的长处.解决了各自的缺点.这种组合模式是目前最广范,最普遍的一种创建自定义类型的方法.