JavaScript Extending Class

前端 未结 10 1408

I have a base class:

function Monster() {
  this.health = 100;
}

Monster.prototype.growl = function() {
  console.log(\"Grr!\");
}

That

10条回答
  •  感动是毒
    2020-11-30 18:28

    For Autodidacts:

    function BaseClass(toBePrivate){
        var morePrivates;
        this.isNotPrivate = 'I know';
        // add your stuff
    }
    var o = BaseClass.prototype;
    // add your prototype stuff
    o.stuff_is_never_private = 'whatever_except_getter_and_setter';
    
    
    // MiddleClass extends BaseClass
    function MiddleClass(toBePrivate){
        BaseClass.call(this);
        // add your stuff
        var morePrivates;
        this.isNotPrivate = 'I know';
    }
    var o = MiddleClass.prototype = Object.create(BaseClass.prototype);
    MiddleClass.prototype.constructor = MiddleClass;
    // add your prototype stuff
    o.stuff_is_never_private = 'whatever_except_getter_and_setter';
    
    
    
    // TopClass extends MiddleClass
    function TopClass(toBePrivate){
        MiddleClass.call(this);
        // add your stuff
        var morePrivates;
        this.isNotPrivate = 'I know';
    }
    var o = TopClass.prototype = Object.create(MiddleClass.prototype);
    TopClass.prototype.constructor = TopClass;
    // add your prototype stuff
    o.stuff_is_never_private = 'whatever_except_getter_and_setter';
    
    
    // to be continued...
    

    Create "instance" with getter and setter:

    function doNotExtendMe(toBePrivate){
        var morePrivates;
        return {
            // add getters, setters and any stuff you want
        }
    }
    

提交回复
热议问题