js中的面向对象程序设计

来源:互联网 发布:iphone在线软件 编辑:程序博客网 时间:2024/05/19 18:42

  前端开发人员目前大部分的工作仍停留在写一些页面的效果上面,基本上通过jquery或jquery的一些插件来实现来满足工作的需要。然而这些华丽的东西往往会蒙蔽我们的眼睛,因为它让我们接触不到js底层的一些实现,大牛们封装好的方法,经常会只需要我们传几个参数,复杂点就是传一个json类型的数组即可实现我们梦寐以求的效果,然而当我们实现了某些很炫的效果后就会沾沾自喜,以为学会了js。

  每个人的工作过程必须经过几个阶段,我想这个阶段是必须要经历的,至少我经历过,有不同意见者请默认即可。或者你可以选择关闭关闭自页面不再阅读。在这里我经常会想到js中几个创建对象的时代,如我们的成长过程是一致。

  一、初级阶段

  通过最原始的方法,自己动手丰衣足食的年代。

  var person1=new Object();

  person.name="alex";

  person.age=34;

  person.showInfo=function(){ alert(this.name); }

  至此一个人的对象就创建完毕,看上去很优美,但如果我们需要再次创建同种类型人时,还必须手工再次重复书写。

  var person2=new Object();

  person2.name="andy";

  person2.age=45;

  person2.showInfo=function(){ alert(this.name); }

  如果要创建一个省的人那该怎么办,弄死我吧,悲催了……

  显然其缺点:使用同一接口创建很多对象,会产生大量的重复代码。于是聪明的人们就创造了第二种方法。

  二、中级阶段之工厂模式

  初级阶段时穿一件新衣服,需要自己买布,手巧的,自己裁剪好,然后在缝纫机上缝制(或手工缝制),这样一件没有Logo和水洗标的新衣服就产生了。我上高中以前就是这个阶段。后来人们的生活条件富裕了,懒得再去费这么多力气去自己做,一是款式很不是很好,二是成本费用也少,足可以买一件现成的。于是到现在人们一直流行于买现成的服装。在程序设计中聪明的程序根据生活的变化,把日常生活方式的转变注入到了程序中。于是就有了后来的工厂模式。如果我想穿一件新衣服,只需要到集市上买或到厂家直接去买即可。

  //制造衣服的工厂

  function createClothes(){

   var clothes=new Object();

   clothes.logo="nick";
   clothes.price=900;

   clothes.showInfo=function(){ alert(this.name); }

   return clothes;

  }

  //如果我想要一件新衣服

  var clothes1=createClothes();//一件20**款时下最流行的nick运动服即可产生

  较劲的人会问一句,如果我想给河北省人每人一件咋办?

for(var i=0;i<河北省人口;i++){

   var clothers+i=createClothes();

  }

  至此完毕!老牛B了吧~~~~~~

  别高兴的太早,谁说打着nick标的衣服就是耐克的,也可能是山寨货。这些衣服存在一致命弱点就是没有防伪码方便我们查询出是不是耐克的衣服,连耐克厂家也不能非常确定地说这是他们的产品,他们只能说是衣服。用js的专业术语即:虽然解决了创建多个相似对象时产生大量重复代码的问题,但没有解决同一类型对象的类别识别问题,即无法确定是哪一种对象类型。以上例子中即不能确定是耐克的产品,只是说是一种衣服(object类型)。

  只要思想不滑坡,办法就比困难多,因此,针对以上发生的问题,就有以下的第三种创建对象的方法。

  三、高级阶段之构造函数模式

  在人们的钱包鼓鼓,可以穿上名牌之后,无论是多么名贵的名牌产品穿在身上,总是被误会成山寨货,总是莫大的打击,因此就有一种可以随时查询该衣服是否为正品行业的方法——构造函数  

function Nick(logo,price){  this.logo=logo;  this.price=price;  this.showInfo=function(){ alert(this.log);}}var nick1=new Nick("nick",900);alert(nick1 instanceof Nick);//truealert(nick1.constructor == Nick);//true
以上两行验明正身,证明此衣服为正品行货!!!!!!

原创粉丝点击