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

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

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

    jasmine214--love

    只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
    posts - 731, comments - 60, trackbacks - 0, articles - 0

    js繼承的實現---object.extend(d,s)方法

    Posted on 2010-06-20 21:56 幻海藍夢 閱讀(18730) 評論(0)  編輯  收藏 所屬分類: JS
    http://www.cnblogs.com/5201314/archive/2009/05/22/1487213.html
    Object.extend
    = function (destination, source) {
    for ( var property in source) {
    ??? destination[property]
    = source[property];
    }
    return destination;
    }
    Prototype 對Object類進行的擴展主要通過一個靜態函數Object.extend(destination, source)實現了JavaScript中的繼承。 從語義的角度, Object.extend(destination, source)方法有些不和邏輯, 因為它事實上僅僅實現了從源對象到目標對象的全息拷貝。不過你也可以這樣認為:由于目標對象擁有了所有源對象所擁有的特性, 所以看上去就像目標對象繼承了源對象(并加以擴展)一樣。另外, Prototype對Object擴展了幾個比較有用的靜態方法, 所有其他的類可以通過調用這些靜態方法獲取支持。
    JScript code
    Object.extend=function(destination, source) { // 一個靜態方法表示繼承, 目標對象將擁有源對象的所有屬性和方法
    for (var property in source) {
    ??? destination[property]
    = source[property];?? // 利用動態語言的特性, 通過賦值動態添加屬性與方法
    }
    return destination;?? // 返回擴展后的對象
    }

    Object.extend(Object, {
    inspect:
    function(object) {?? // 一個靜態方法, 傳入一個對象, 返回對象的字符串表示
    ??? try {
    ?????
    if (object == undefined) return'undefined'; // 處理undefined情況
    ????? if (object ==null) return'null';???? // 處理null情況
    ????? // 如果對象定義了inspect方法, 則調用該方法返回, 否則返回對象的toString()值
    ????? return object.inspect ? object.inspect() : object.toString();
    ??? }
    catch (e) {
    ?????
    if (e instanceof RangeError) return'...'; // 處理異常情況
    ????? throw e;
    ??? }
    },
    keys:
    function(object) {???? // 一個靜態方法, 傳入一個對象, 返回該對象中所有的屬性, 構成數組返回
    ??? var keys = [];
    ???
    for (var property in object)
    ????? keys.push(property);????
    // 將每個屬性壓入到一個數組中
    ??? return keys;
    },
    values:
    function(object) {?? // 一個靜態方法, 傳入一個對象, 返回該對象中所有屬性所對應的值, 構成數組返回
    ??? var values = [];
    ???
    for (var property in object) values.push(object[property]); // 將每個屬性的值壓入到一個數組中
    ??? return values;
    },
    clone:
    function(object) {??? // 一個靜態方法, 傳入一個對象, 克隆一個新對象并返回
    ??? returnObject.extend({}, object);
    }
    });
    主站蜘蛛池模板: 美女免费视频一区二区| 亚洲AV无码专区在线电影成人 | 亚洲精品色播一区二区| 久久午夜免费视频| 久久久久se色偷偷亚洲精品av | 岛国岛国免费V片在线观看| 亚洲精品国产高清不卡在线| 国产99久久久国产精免费| 国精无码欧精品亚洲一区 | 亚洲av无码兔费综合| 国产免费变态视频网址网站| 小说区亚洲自拍另类| 久久精品国产精品亚洲人人 | 亚洲欧洲无码AV电影在线观看| 三年片免费观看大全国语| 亚洲成av人影院| 五月婷婷综合免费| 成a人片亚洲日本久久| 亚洲线精品一区二区三区影音先锋| a级毛片免费播放| 亚洲精品午夜视频| 曰皮全部过程视频免费国产30分钟| 久久水蜜桃亚洲AV无码精品| 久久伊人亚洲AV无码网站| 一级毛片免费观看| 亚洲国产精品无码久久98| 亚洲一区精品伊人久久伊人| 无码一区二区三区免费| 国产午夜亚洲精品| 亚洲日韩精品一区二区三区| 精品国产sm捆绑最大网免费站| 国产成人精品久久亚洲高清不卡| 亚洲精品中文字幕无码蜜桃| 免费看黄视频网站| 九九九国产精品成人免费视频| 亚洲天堂男人天堂| 国产精品免费播放| 99在线观看免费视频| 精品无码专区亚洲| 久久亚洲精品成人AV| 免费jjzz在在线播放国产|