<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"  回復  更多評論
      

    主站蜘蛛池模板: 久爱免费观看在线网站| 久久久久久av无码免费看大片| 污污网站18禁在线永久免费观看| 久久综合亚洲色HEZYO国产| 人成电影网在线观看免费| 亚洲精品A在线观看| caoporm超免费公开视频| 奇米影视亚洲春色| 精品97国产免费人成视频 | 国内自产拍自a免费毛片| 国产精品亚洲片夜色在线| 日韩欧美一区二区三区免费观看| 国产精品久久亚洲不卡动漫| 免费理论片51人人看电影| 欧洲亚洲国产精华液| 亚洲成a人片在线观看国产| 久久免费99精品国产自在现线| 亚洲乱码精品久久久久..| 99精品视频在线视频免费观看| 亚洲性无码av在线| 成人片黄网站色大片免费| 国产亚洲精品2021自在线| 91麻豆精品国产自产在线观看亚洲| 丝袜捆绑调教视频免费区| 亚洲美女中文字幕| 午夜男人一级毛片免费| 美女黄网站人色视频免费| 亚洲中文字幕久久精品无码喷水 | 国产99久久久国产精免费| 亚洲级αV无码毛片久久精品| 3344免费播放观看视频 | 最新国产成人亚洲精品影院| 国产大片91精品免费观看男同| 亚洲精品视频免费观看| 久久亚洲AV成人无码软件 | 亚洲一级特黄大片无码毛片| 日韩人妻无码精品久久免费一| 亚洲AV香蕉一区区二区三区| 亚洲精品亚洲人成人网| 亚洲免费综合色在线视频| 久久99精品免费一区二区|