1 工厂模式
用函数封装对象
例子:
function createPerson(name,age){
var o = new Object();
o.name = name;
o.age = age;
o.sayName = function(){
alert(this.name);
}
return o;
}
var onePerson = createPerson('sun',12);
2 构造函数模式
例子:
function Person(name,age){
this.name = name;
this.age = age;
this.sayName = function(){
alert(this.name);
}
}
var aPerson = new Person('sun',12);
这里与上面工厂模式有着一点区别,没有创建对象没有return,直接把属性和方法赋值给this,而且需要new来调用;
3 原型模式
function Person(name){
this.name = name;
}
Person.prototype.age = 12;
var aPerson = new Person('sun');
alert(aPerson.age); //12
Person.prototype.age = 12;这句代码是让函数的所有的实例的age都是12;就不用每个对象都去设置了;
4 组合使用构造函数和原型模式
就是共享的属性和方法使用原型对象的模式,而不是一样的使用构造函数的模式;
这样可以最大限度的节省内存的使用;