<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 幻海藍夢 閱讀(18731) 評論(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无码男人的天堂| 久久久久免费看黄A片APP| 99久久亚洲精品无码毛片| 成年人免费的视频| 久久精品国产亚洲AV无码偷窥 | 亚洲卡一卡2卡三卡4卡无卡三 | 日本高清在线免费| 亚洲狠狠狠一区二区三区| 免费观看无遮挡www的视频| 亚洲人成网站在线观看播放青青| 我们的2018在线观看免费高清| 四虎永久在线精品免费影视| 亚洲av无码兔费综合| 亚洲国产成人影院播放| 国产精品小视频免费无限app | 亚洲国产日韩在线一区| 中国在线观看免费国语版| 亚洲女子高潮不断爆白浆| 国产嫩草影院精品免费网址| 四虎国产精品成人免费久久 | 两个人的视频高清在线观看免费| 亚洲AV成人一区二区三区在线看 | 久久亚洲中文字幕精品一区| 成全高清在线观看免费| 久久久无码精品亚洲日韩蜜桃| 曰批全过程免费视频网址| 亚洲熟妇AV日韩熟妇在线| 亚洲欧洲精品成人久久曰影片 | 亚洲精品视频免费观看| 亚洲精品视频在线| 免费观看的毛片手机视频| 永久免费精品影视网站| 亚洲AV中文无码字幕色三| 色婷婷7777免费视频在线观看| 免费的黄色网页在线免费观看| 亚洲Av无码精品色午夜| 中国在线观看免费国语版| 久久一区二区免费播放| 亚洲avav天堂av在线网爱情|