ZF总结:0102 javascript面向对象编程之单例模式和工厂模式,构造函数,原型模式;

面向对象编程:Object为导向的编程;

 

单例模式

 

/*单例模式的*/
var obj={
name:"zhuanbang",
age:"25",
height:"175",
weight:"65",
gender:"",
CSS:function css(){},
HTML:function html(){},
JS:function js(){}
};
/*另外一种写法*/
var DOM={};
DOM.insertAfter=function(){};
DOM.perpend=function(){};
DOM.getIndex=function(){};

工厂模式

/*工厂模式,有单利模式演变的*/
var shirt={material:"虎皮",size:"xl",weight:"",height:"",width:""};
var shirt1={material:"虎皮",size:"xl",weight:"",height:"",width:""};
var shirt2={material:"虎皮",size:"xl",weight:"",height:"",width:""};
var shir3={material:"虎皮",size:"xl",weight:"",height:"",width:""};
var shirt4={material:"虎皮",size:"xl",weight:"",height:"",width:""};
/*上面是单利模式,下面是工厂模式*/
function shirtFactory(){
var obj=new Object;//建立一个对象
obj.material="";
obj.weight="";
obj.height="";
obj.width="";
obj.size="";
return obj;//返回出去
}
//面向对象的第一个任务:解决数据生产的方式;
// 基于对象,可以描述比较复杂的数据;
面向对象,不仅可以描述,而且还可以生产复杂数据;

构造函数模式

/*构造函数*/
function shirt(material){
this.material=material;
this.weight="";
this.height="";
this.width="";
this.size="";
}
var shirt1=new shirt("虎皮");//new关键字去执行一个函数,则这个函数就被当成一个类来使用的;这个函数叫构造函数模式;
//
构造函数的作用是初始化;
//
构造函数起到实例识别的作用

构造函数和工厂模式的区别;

1、构造函数内不用new Objecr;

2、构造函数不用return;

3、里面的obj换成了this;

构造函数解决了实例识别的问题;

原型模式

function shirt(material){
this.material=material;
this.weight="";
this.height="";
this.width="";
this.size="";
}
//1,创建shirt类的实例;
//2
、把实例返回;
//3、在此实例为上下文运行shirt
函数;
//shirt.prototype;//
任何一个函数都有此属性。但他只有当成类来使用才有意义的;
//
把所有共享的方法,都保存在此属性上的;
shirt.prototype.holdWarm=function(){
console.log("保暖")
};
var shirt1=new shirt();
var shirt2=new shirt();
console.log(shirt1.holdWarm===shirt2.holdWarm)//true;
//
原型模式,解决了类的公用问题;
shirt1.a[0]=99;//如果私有属性没有a。会找到原型上;这样就修改了类的共有属性的a
shirt1.a=99;//没有读的过程,直接写,会在shirt1的私有属性上写一个a

 

 

 

~~~~~~;

未经允许不得转载:朱邦邦的WEB前端开发博客 » ZF总结:0102 javascript面向对象编程之单例模式和工厂模式,构造函数,原型模式;

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址