<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    小方的Java博客

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      27 隨筆 :: 17 文章 :: 115 評論 :: 0 Trackbacks
    選自《Professional Javascript For Web Developers》

    其它方式:工廠方式,構造函數方式,原型方式都各有各的大缺陷,這里就不一一介紹了,想了解的可以去看一下這本著作的第3章節。

    1. 混合構造函數/原型方式

    function ?Car(sColor,?iDoors,?iMpg)?{
    ??
    this .color? = ?sColor;
    ??
    this .doors? = ?iDoors;
    ??
    this .mpg? = ?iMpg;
    ??
    this .drivers? = ? new ?Array(“Mike”,?“Sue”);
    }

    Car.prototype.showColor?
    = ? function ?()?{
    ??alert(
    this .color);
    };

    var ?oCar1? = ? new ?Car(“red”,? 4 ,? 23 );
    var ?oCar2? = ? new ?Car(“blue”,? 3 ,? 25 );

    oCar1.drivers.push(“Matt”);

    alert(oCar1.drivers);?
    // outputs?“Mike,Sue,Matt”
    alert(oCar2.drivers);? // outputs?“Mike,Sue”

    優點:具有其它方式的優點而沒有其它方式的缺點
    不足:封裝性欠缺

    2 . 動態原型方式

    function ?Car(sColor,?iDoors,?iMpg)? {
    ??
    this .color? = ?sColor;
    ??
    this .doors? = ?iDoors;
    ??
    this .mpg? = ?iMpg;
    ??
    this .drivers? = ? new ?Array(“Mike”,?“Sue”);

    ??
    if ?( typeof ?Car._initialized? == ?“undefined”)? {
    ????Car.prototype.showColor?
    = ? function ?()? {
    ??????alert(
    this .color);
    ????}
    ;

    ????Car._initialized?
    = ? true ;
    ??}

    }


    優點:封裝性比上一個方式更好
    不足:就是看上去奇怪一點,呵呵


    總之,以上2種方式是目前最廣泛使用的,盡量使用它們避免不必要的問題。

    posted on 2007-02-11 17:34 方佳瑋 閱讀(6166) 評論(1)  編輯  收藏 所屬分類: AJAX

    評論

    # re: [整理]JavaScript最流行的2種定義類的方式 2007-02-11 20:46 BeanSoft
    // Method 1: flat array style quick object define
    var myObject = {
    username : "beansoft",
    age : 24,
    test : function() {alert(this.age);}
    };

    // Method 2: using Object
    var myObject = new Object();
    myObject.username = "beansoft";
    myObject.age = 24;

    // Method 3: using constructor

    function MyObject(username, age) {
    this.username = username;
    this.age = age;
    this.test = function() {alert(this.age);};
    }

    var myObject = new MyObject("beansoft", 24);

    // Method 4,5 如樓上文章所言既是

    // Using: myObject.username, myObject["username"], myObject[0]
    myObject.test();// Will display alert window, value is age
    myObject.username = "Hello";// Will asign the username property to "Hello"  回復  更多評論
      

    主站蜘蛛池模板: 一区二区三区免费高清视频| 精品国产_亚洲人成在线| 中文字幕乱码一区二区免费| 亚洲永久精品ww47| 国产精品免费看久久久香蕉| 亚洲综合图色40p| a成人毛片免费观看| 久久精品国产亚洲av麻| 久久免费福利视频| 亚洲美女视频网址| 国产卡一卡二卡三免费入口| 亚洲一线产区二线产区区| 免费网站看v片在线香蕉| 美女18毛片免费视频| 久久精品亚洲福利| 国产精品免费高清在线观看| 911精品国产亚洲日本美国韩国| 国产成人精品免费视| 亚洲欧美日韩自偷自拍| 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 | 免费的一级黄色片| 无忧传媒视频免费观看入口| 久久久久亚洲AV成人网| 污污网站免费观看| 亚洲熟妇av午夜无码不卡| 亚洲成a人片在线观看久| 女人体1963午夜免费视频| 亚洲中文无码线在线观看| 国产又粗又猛又爽又黄的免费视频| 日本黄页网址在线看免费不卡| 国产亚洲精品美女久久久| 一色屋成人免费精品网站| 美女视频黄a视频全免费网站色 | 日韩精品成人亚洲专区| 国产男女爽爽爽免费视频| 亚洲欧洲日产韩国在线| 国产一区二区三区在线免费观看| a级毛片黄免费a级毛片| 亚洲欧洲另类春色校园网站| 中文字幕第一页亚洲| 国产人在线成免费视频|