JavaScript中最流行的2种定义类的方式

上一篇 / 下一篇  2007-12-29 17:36:00 / 个人分类:开发技术

 

其它方式:工厂方式,构造函数方式,原型方式都各有各的大缺陷,这里就不一一介绍了,想了解的可以去看一下这本著作的第3章节。

1. 混合构造函数/原型方式 

  1. function  Car(sColor, iDoors, iMpg) {
  2.    this .color  =  sColor;
  3.    this .doors  =  iDoors;
  4.    this .mpg  =  iMpg;
  5.    this .drivers  =   new  Array(“Mike”, “Sue”);
  6. }
  7. Car.prototype.showColor  =   function  () {
  8.   alert( this .color);
  9. };
  10. var  oCar1  =   new  Car(“red”,  4 ,  23 );
  11. var  oCar2  =   new  Car(“blue”,  3 ,  25 );
  12. oCar1.drivers.push(“Matt”);
  13. alert(oCar1.drivers);  // outputs “Mike,Sue,Matt” 
  14. alert(oCar2.drivers);  // outputs “Mike,Sue”
 

优点:具有其它方式的优点而没有其它方式的缺点
不足:封装性欠缺

2 . 动态原型方式 
  1.   function  Car(sColor, iDoors, iMpg)   {
  2.    this .color  =  sColor;
  3.    this .doors  =  iDoors;
  4.    this .mpg  =  iMpg;
  5.    this .drivers  =   new  Array(“Mike”, “Sue”);
  6.    if  ( typeof  Car._initialized  ==  “undefined”)   {
  7.     Car.prototype.showColor  =   function  ()   {
  8.       alert( this .color);
  9.     } ;
  10.     Car._initialized  =   true ;
  11.   } 


优点:封装性比上一个方式更好
不足:就是看上去奇怪一点,呵呵 

总之,以上2种方式是目前最广泛使用的,尽量使用它们避免不必要的问题

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-09-28  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 2663
  • 日志数: 63
  • 建立时间: 2007-08-02
  • 更新时间: 2008-07-11

RSS订阅

Open Toolbar