//对象创建模式 //方式一:Object构造函数模式 var p=new Object(); p.name='Tom'; p.age=12; p.setName=function (name){ this.name=name; } p.setName('Jack'); console.log(p.name,p.age); //方式二:对象字面量 var p={ name:'Tom', age:12, setName:function (name){ this.name=name; } }; console.log(p.name,p.age); //方式三:工厂模式:通过工厂函数动态创建对象并返回。(缺点:不能确定对象的具体类型) function createPerson(name,age){ var obj={ name:name, age:age, setName:function(){ this.name=name; } }; return obj; } var p1=createPerson('zain',12); var p2=createPerson('Bob',13); //方式四:自定义构造函数模式(当创建多个对象有相同数据,浪费内存,可以把共有的东西放在原型里。看方式5) function Person(name,age){ this.name=name; this.age=age; this.setName=function (name){ this.name=name; } } var p1=new Person('Tom',12); function Student(name,price){ this.name=name; this.price=price; } var s1=new Student("Bob",12000); //方式5:构造函数+原型的组合模式 function Person(name,age){ this.name=name; this.age=age; } Person.prototype.setName=function (name){ this.name=name; } var p1=new Person('Tom',12); var p2=new Person('Jack',13); console.log(p1,p2);