标签:
工厂模式:
有点类似于加工厂富士康这种,用一个模型不断复制得到新的东西;
function person(name, age){
var o = new Object();
o.name = name;
o.age = age;
o.sayName = function (){
alert(this.name)
}
}
var person1 = person(‘cy‘,22);//得到person1
var person2 = person(‘cy2‘,20);//得到person2
可以看到我们每次通过实例化对象后输入相应的参数后就可以的到一个想得对象;
它的主要特点:在函数中创建一个对象并初始化,然后将这个对象返回回来;
缺点:不够灵活,这种针对高度相似的对象还好说;
构造函数模式:
单例模式:
一个类对象只有一个唯一的实例;我们在创建的过程中一般会先判断是否存在,如果存在就返回这个实例,如果不存在就创建这个实例后在返回,这样做的目的就是为了只有一个唯一的实例;
简单的单例模式---对象字面量:
var person = {
name: "cy",
age: "22",
sayName: function(){
alert(this.name);
}
}
还可以通过匿名函数闭包的方式创建;
var person = (function(name,age){
var unique;
var name = name;
var age = age;
function init (){
if(person.unique === undefine){
unique = new Constructor();
}else {
return unique;
}
function Constructor(){
//单例的构造函数
}
return {
init: init
}
})(name,age)
通过person.init()来得到单例对象,每次初始化都是得到的同一个单例;
这样做有个好处,给人封装的感觉,把需要暴露的东西返回回去,私有的则不会被访问到
标签:
原文地址:http://www.cnblogs.com/sun4343lee/p/5701806.html