js 实现类、继承的方法

function makeClass(parentClass){
    if(parentClass){
        var superClass = function (){};
        superClass.prototype = parentClass.prototype;
        klass.prototype = new superClass;
    }
    function klass(){
        // this.init.apply(this,arguments);
        return new klass.fn.init;
    }
    klass.prototype.init = function(){};
    klass.fn = klass.prototype;
    klass.fn.init.prototype = klass.prototype;
    klass.extend = function(obj){
        if(typeof obj ==="object" && obj!==null){
            for(var prop in obj){
                klass[prop] = obj[prop];
            }
        }
    }
    klass.include = function(obj){
        if(typeof obj ==="object" && obj!==null){
            for(var prop in obj){
                klass.fn[prop] = obj[prop];
            }
        }
    }
    return klass;
}


var Animal = makeClass();
Animal.include({
    'pee':function(){console.log('pee-pee')}
})
var Cat = makeClass(Animal);
var tom = new Cat;
console.log(tom.pee());

 

posted on 2015-08-24 14:57  鸟麦  阅读(149)  评论(0)    收藏  举报

导航