JavaScript 类继承函数 - musishui/WebStudy GitHub Wiki

function extend(Sub, Sup){
    // 定义一个空函数
    var F = function(){};
    // 设置空函数的原型为超类的原型
    F.prototype = Sup.prototype;
    // 实例化空函数,并把超类原型引用传递给子类
    Sub.prototype = new F();
    // 恢复子类原型的构造函数为子类自身
    Sub.prototype.constructor = Sub;
    // 在子类中存储超类原型,避免子类和超类耦合
    Sub.sup = Sup.prototype;
    // 检查超类原型构造函数是否为自身
    if(Sup.prototype.constructor == Object.prototype.constructor){
        // 类继承封装函数
        Sup.prototype.constructor = Sup;
    }
};
⚠️ **GitHub.com Fallback** ⚠️