Javascript 静态函数集合的优点

Javascript 静态函数集合的优点,javascript,Javascript,我肯定以前有人问过这个问题,但没有找到它。。。所以我要试试看 对于由多个域组成的项目,我通常将它们分为两组 如果只有一个实例,我就使用静态对象。公用事业也很快在这里登陆 否则使用原型 例如,我有一个维护缓存的项目。因为应该只有一个缓存,所以通常写为: var cache = { head : null, tail : null, clear : function () { cache.head = null; cache.tail =

我肯定以前有人问过这个问题,但没有找到它。。。所以我要试试看

对于由多个域组成的项目,我通常将它们分为两组

  • 如果只有一个实例,我就使用静态对象。公用事业也很快在这里登陆
  • 否则使用原型
  • 例如,我有一个维护缓存的项目。因为应该只有一个缓存,所以通常写为:

    var cache = {
        head : null,
        tail : null,
    
        clear  : function () { 
            cache.head = null;
            cache.tail = null;
            ...
        },
        add    : function () { ... },
        remove : function () { ... },
        ...
    };
    
    或者类似于:

    var cache = {};
    cache.push = function (d) {
      ...
    };
    cache.flush = function (d) {
      ...
    };
    
    其他对象意味着要复制,或有一天可能会复制,并编码为:

    function Foo() {
      ...
    }
    
    Foo.prototype.bar = function () {
       ...
    };
    

    现在;我的问题是,这种做法是否有任何特别的缺点。特别是生成静态对象的方式。或者,换一种方式;任何特殊的优势。我发现的大多数事情都讨论了复制对象时原型的优点。在构造函数等中使用原型而不是
    。很少涉及静态对象的细节。也许是因为它是直截了当的

    静态实践的另一个例子是,例如,使用