0

在为我们的团队开发新的 javascript 框架时,我一直想知道使用 javascript 类执行对象组合的最佳方式。

例如,我有一个名为 ajax 的简单对象(还有许多其他对象):

function ajax() {
}

ajax.prototype = {
    postJSON: function(url, data, callback) {
        return $.ajax({
            'type': 'POST',
            'url': url,
            'contentType': 'application/json',
            'data':JSON.stringify(data),
            'dataType': 'json',
            'success': callback
        });
    }
};

我有一个主要对象,可以访问框架的每个组件和自定义选项管理:

function ElDorado() {      
    ...
    this.ajax = new ajax();
    ...
}

最后,我使用的是受限范围:

(function(window, jQuery) {
    ... 
    [ajax object]
    ...
    [ElDorado main-object]
    ...
    window.ElDorado = new Eldorado();
})(window, jQuery);

所以,我有两个问题:

  1. 如何避免空的ajax“类”功能?(因为我没有任何私人/公共成员)。

  2. 访问当前对象中的其他对象的最佳方法是什么?例如,现在我必须这样做:window.ElDorado.[other-object]

4

1 回答 1

2

既然看起来你只使用一个实例,你可以省略构造函数,直接创建对象:

this.ajax = {
    postJSON: function(url, data, callback) {
        return $.ajax({
            'type': 'POST',
            'url': url,
            'contentType': 'application/json',
            'data':JSON.stringify(data),
            'dataType': 'json',
            'success': callback
        });
    }
};

对于您的第二个问题:如果您只想拥有一个全局变量ElDorado,那么您的选择非常有限。所以调用属性ElDorado的方式:

ElDorado.porperty

或者

ElDorado["property"]

几乎是您拥有的最佳选择。

于 2013-07-15T20:33:57.617 回答