中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

JavaScript中的類繼承實(shí)現(xiàn)方式

2018-07-20    來源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用
/**
 * 把一個(gè)實(shí)例方法添加到一個(gè)類中
 * 這個(gè)將會(huì)添加一個(gè)公共方法到 Function.prototype中,
 * 這樣通過類擴(kuò)展所有的函數(shù)都可以用它了。它要一個(gè)名稱和一個(gè)函數(shù)作為參數(shù)。
 * 它返回 this。當(dāng)我寫一個(gè)沒有返回值的方法時(shí),我通常都會(huì)讓它返回this。
 * 這樣可以形成鏈?zhǔn)秸Z句。
 *
 * */
Function.prototype.method = function (name, func) {
    this.prototype[name] = func;
    return this;
};
/**
 * 它會(huì)指出一個(gè)類是繼承自另一個(gè)類的。
 * 它必須在兩個(gè)類都定義完了之后才能定義,但要在方法繼承之前調(diào)用。
 *
 * */
Function.method('inherits', function (parent) {
    var d = 0, p = (this.prototype = new parent());

    this.method('uber', function uber(name) {
        var f, r, t = d, v = parent.prototype;
        if (t) {
            while (t) {
                v = v.constructor.prototype;
                t -= 1;
            }
            f = v[name];
        } else {
            f = p[name];
            if (f == this[name]) {
                f = v[name];
            }
        }
        d += 1;
        r = f.apply(this, Array.prototype.slice.apply(arguments, [1]));
        d -= 1;
        return r;
    });
    return this;
});
/**
 *
 * The swiss方法對(duì)每個(gè)參數(shù)進(jìn)行循環(huán)。每個(gè)名稱,
 * 它都將parent的原型中的成員復(fù)制下來到新的類的prototype中
 *
 * */
Function.method('swiss', function (parent) {
    for (var i = 1; i < arguments.length; i += 1) {
        var name = arguments[i];
        this.prototype[name] = parent.prototype[name];
    }
    return this;
});

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:javascript操作cookie的代碼

下一篇:JavaScript格式化日期