假设我们有这样的一个需求:记录一个人的 名字和年龄,然后有个方法可以显示这个人的名字和年龄。
按照普通的方法,我们的代码应该是这样的
var person1 = new Object() , person2 = new Object() ; person1.name = "TOM" ; person1.age = 18 ; person1.show = function () { alert ("Name:" + this.name + " ; Age:" + this.age); } person2.name = "LiLei" ; person2.age = 22 ; person2.show = function () { alert ("Name:" + this.name + " ; Age:" + this.age); }
以上的写法虽然能解决了该需求,但是却很坑爹,因为出现了大量的重复代码。让码农处于一种毫无意义的重复工作中。
为了解决这些问题,人们开始了换一种新的方式去解决这个问题。
一、工厂模式
function person(name,age) { o = {}; o.name = name ; o.age = age ; o.show = function(){ alert("Name:" + this.name + " ;Age:" +this.age) } return o; } var person1 = new person("TOM",18); var person2 = new person("LiLei",20);
构造函数模式 原型模式 组合使用构造函数模式和原型模式 动态原型模式 寄生构造函数模式 稳妥构造函数模式
原文:http://www.cnblogs.com/linjilei/p/5118207.html