首页 > Web开发 > 详细

js抽象类和抽象方法

时间:2014-03-29 11:27:27      阅读:655      评论:0      收藏:0      [点我收藏+]

js中模拟抽象类:在父类中调用一个未定义的方法,这个方法在子类中必须被实现。

1, 模拟类的工厂模式

bubuko.com,布布扣
//基类
var Class = {
    //基类的静态方法
    creat:function(){
        //返回一个constructor
        return function(){
            //调用未定义的initialize,
            //将constructor的arguments传递给initialize
            this.initialize.apply(this,arguments);
        }
    }
};

var class1 = Class.creat();
class1.prototype = {
    initialize:function(str){
        alert(str);
    }
};
var obj = new class1(‘hello‘);
bubuko.com,布布扣

2, 在父类中调用一个未定义的方法(或者定义了的空方法),这个方法在子类才被实现。

bubuko.com,布布扣
Object.extend = function(des,source){
    for(p in source){
        des[p] = source[p];
    }
    return des;
};
Object.prototype.extend = function(object){
    return Object.extend.apply(this,[this,object]);
};

function BaseClass(){};
BaseClass.prototype = {
    initialize:function(name,age){
        this.name = name;
        this.age = age;//调用了一个抽象方法
        this.oninit();
    },
    //抽象方法是一个空方法,由派生类实现
    oninit:function(){} 
};
function ClassA(){};
ClassA.prototype = (new BaseClass()).extend({
    oninit:function(){
        alert(this.name + ‘ : ‘ + this.age);
    }
}); 
var obj = new ClassA();
obj.initialize(‘Tom‘,22);
bubuko.com,布布扣

js抽象类和抽象方法,布布扣,bubuko.com

js抽象类和抽象方法

原文:http://www.cnblogs.com/huhy/p/3630919.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!