使用动态函数创建Javascript类

时间:2009-12-31 11:47:48

标签: javascript class

让我们首先说我的代码完全正常,没有问题。 我只想用一个很好的类来包装它,以便将来动态使用,我想知道如何以最正确的方式在Javascript中做到这一点。

load_server是一个放置Ajax请求的函数。 pagination()/ itemlinks()是遍历检索到的数据并标记链接以供将来使用Ajax的函数。 我目前在函数中编写所有内容并将其转储到代码中,但我想创建类似的东西:

function ajaxRequest(type, link, container) {
    this.after_success = null;
    this.check_pagination = true;
    if(typeof(type)) == ‘undefined’) this.type='';
    if(typeof(link)) == ‘undefined’) this.link='';
    if(typeof(container)) == ‘undefined’) this.container='';

    this.pagination=function() {
        //static function..
    };
    this.load_server=function () { 
        //function logic here..
    };
    while(mainReq.after_success) {
        func();
    }
}

var mainReq = new ajaxRequest{'link'};
mainReq.after_success = {
    itemlinks = function() { },
    morefunc = function() { }
};
mainReq.submit();

我目前使用以下jQuery代码:

load_server = function (type, link, container) {
$(container).html("<div class='mask-loading'>Loading ...</div>");

$(container).load(getUrl, 
function(responseText, textStatus, XMLHttpRequest) { //Callback function.
    if(textStatus=='success') {
        pagination_render();
        itemlinks();
    }
    else {
        $(container).html("We are sorry, but there was an error with your request.<br />Please try again.");
    }
});
}
var pagination_render = function() {
    var pagination = $('.pagination a');
    pagination.each(function() {
        $(this).click(function(event) {
            console.log(this.href);
            load_server('page', this.href, '#tab1');
            return false;
        });
    });
};
pagination_render(); //init any pagination files

其他功能是相同的,所以不需要在它们周围飞溅..

1 个答案:

答案 0 :(得分:6)

如果您想在Javascript中使用类和继承,请查看MootoolsJohn Resig's blog

注意:两者都受到Dean Edward's Base.js的启发。