(1)创建object对象,为其添加属性方法
eg: var person = new Object();
person.name = 'xiaoxiao';
缺点:使用一个接口创建很多对象,会产生大量重复代码
(2)工厂模式
eg : function createPersonal(name,age,job){
var o = new Object();
o.name = name;
return 0;
} 工厂模式解决了对象相似问题,却没有解决对象识别问题(如何知道对象的类型)
(3)构造函数模式
function Person(name,age,job){
this.name = name;
this.age = age;
}构造函数模式没有显示的创建对象,直接将方法和属性赋给了this,没有return
语句要创建person的新实例,必须使用new操作符,实际上经历4个步骤:
a 创建一个新对象
b将构造函数的作用域赋给新对象(this指向这个新对象)
c 执行构造函数,为新对象添加属性
d 返回新对象
构造函数模式创建的对象可以识别其类型,但每个方法都要在每个实例上重建一遍
eg: var person1 = new Person(); var person2 = new Person();